함수는 다음과 같구요
진리함수:구(실수:a,b,r,각,각둘,원높,원폭;진리:가,세,진둘,진);
결과:=거짓; sphere.배경.붓.양식:=ㅂㅇ채우기; 만일(참) sphere.배경.사각칠해(0,0,sphere.그림.폭,sphere.그림.높이); sphere.배경.붓.양식:=ㅂㅇ무효과; // 만일(진둘) { sphere.배경.펜.양식:=ㅍㅇ채우기; sphere.배경.펜.색상:=ㅅ빨강; sphere.배경.펜이동(a+r,b); sphere.배경.선그려(a+r,b+r*2);// sphere.배경.펜이동(a,b+r); sphere.배경.선그려(a+r*2,b+r);// sphere.배경.펜.색상:=ㅅ검정; } // 만일(진) { sphere.배경.펜.폭:=2; sphere.배경.펜.색상:=ㅅ은색; sphere.배경.타원그려(a,b,a+r*2,b+r*2); sphere.배경.펜.폭:=1; sphere.배경.펜.색상:=ㅅ검정; sphere.배경.타원그려(a,b,a+r*2,b+r*2); } 실수:타,벳,뱃,높,너비;//,소반; 타:=각-1; 벳:=r*2*sin(degtorad(90-원높))/각; 높:=r*sin(degtorad(원높)); 만일(가) { //가로줄 되풀이(타>0) { 뱃:=벳*타; 높:=원높*제곱근(제곱(r,2)-제곱(r-뱃,2))/r; //문자창보여(수를문(뱃)+", "+수를문(r)); //소반:=뱃/r; //되풀이(소반>1) //소반:=소반-1; //문자창보여(수를문(소반)); //너비:=절대값(r-r*cos(arcsin(뱃/r-소반)))+(소반-뱃/r)*degtorad(90); 너비:=절대값(제곱근(제곱(r,2)-제곱(r-뱃,2))); //아니면 sphere.배경.펜.양식:=ㅍㅇ점; sphere.배경.호(+a+r-너비,b+뱃-높,a+r+너비,b+뱃+높,r*2,뱃,0,뱃); sphere.배경.펜.양식:=ㅍㅇ채우기; sphere.배경.호(a+r-너비,b+뱃-높,a+r+너비,b+뱃+높,0,뱃,r*2,뱃); 타:=타-1; 같이실행해; } } 만일(세) { //세로줄 //타:=-각둘; 타:=0; 실수:폭,도; 각둘:=각둘/2; //도:=degtorad(180)/각둘; 되풀이(타<각둘) { 폭:=r*cos(degtorad(타*180/각둘+원폭));//원폭은 초기각 만일((타*180/각둘+원폭)<90) sphere.배경.호(a+r-폭,b,a+r+폭,b+r*2,a+r,b,a+r,b+r*2); 아니면 만일((타*180/각둘+원폭)>90) sphere.배경.호(a+r-폭,b,a+r+폭,b+r*2,a+r,b+r*2,a+r,b); 아니면 { sphere.배경.펜이동(a+r,b); sphere.배경.선그려(a+r,b+r*2); } 타:=타+1; 같이실행해; sphere.배경.펜.양식:=ㅍㅇ점; } 타:=0; sphere.배경.펜.양식:=ㅍㅇ채우기; 되풀이(타<각둘) { 폭:=r*cos(degtorad(타*180/각둘+원폭)); 만일((타*180/각둘+원폭)>90) sphere.배경.호(a+r-폭,b,a+r+폭,b+r*2,a+r,b,a+r,b+r*2); 아니면 만일((타*180/각둘+원폭)<90) sphere.배경.호(a+r-폭,b,a+r+폭,b+r*2,a+r,b+r*2,a+r,b); 아니면 { sphere.배경.펜이동(a+r,b); sphere.배경.선그려(a+r,b+r*2); } 타:=타+1; 같이실행해; } 결과:=참; |
예제는
함.구(0,0,100,문을수(에디.문자,0),문을수(디트.문자,0),문을수(디트2.문자,0),문을수(디트1.문자,0),참,참,체크박스1.표시,체크박스0.표시); |
a : 그릴 좌변 b : 그릴 윗변 r : 구의 반지름 각, 각둘 : 쪼개는 개수 원높, 원폭 : 카메라 위치에 따른 각도 ...
누구 미분 배우신 분 위 식 좀 고쳐주세요. |
|