#module #deffunc drawline int p1 , int p2 line x@(p1),y@(p1),x@(p2),y@(p2) return #global #define DIAMETERX 800 #define DIAMETERY 800 #define DIAMETER2X 300 #define DIAMETER2Y 300 #define SPAN_L 100 #define SPAN_R 100 #define SPAN_U 100 #define SPAN_D 100 #define CX (DIAMETERX+SPAN_L+SPAN_R)/2 #define CY (DIAMETERY+SPAN_U+SPAN_D)/2 screen 0,DIAMETERX+SPAN_L+SPAN_R,DIAMETERY+SPAN_U+SPAN_D,,050,050 color 000,000,000 : boxf repeat 5 x(cnt) = 1.0*CX+1.0*DIAMETERX/2*cos(deg2rad(18+72*cnt)) y(cnt) = 1.0*CY-1.0*DIAMETERY/2*sin(deg2rad(18+72*cnt)) loop repeat 5 x(cnt+5) = 1.0*CX+1.0*DIAMETER2X/2*cos(deg2rad(18+72*cnt)) y(cnt+5) = 1.0*CY+1.0*DIAMETER2Y/2*sin(deg2rad(18+72*cnt)) loop color 000,255,000 drawline 0,2 drawline 0,3 drawline 1,3 drawline 1,4 drawline 2,4 color 255,000,000 drawline 0,9 drawline 9,1 drawline 1,8 drawline 8,2 drawline 2,7 drawline 7,3 drawline 3,6 drawline 6,4 drawline 4,5 drawline 5,0 msg = "" repeat length(x) msg += ""+cnt+" x:"+int(x(cnt))+"|y:"+int(y(cnt))+"\n" loop msg += ""+CX+"|"+CY dialog msg stop
今回は数学的な問題になるかと思います。
星形の真ん中の逆5角形を消した絵を描きたいと思って書いております。
星形は、直径800の円に内接、
真ん中の5角形は300の円に内接すると考えこのように描きましたが
横線がまっすぐになるはずが、まっすぐにならず、
両方描くと微妙にズレております。
これは何か間違いがあるのでしょうか?
考えましたが答えが出ませんでした。
分かる方いらっしゃいましたらご教授願います。
よろしくお願いいたします。