最終更新日 2004年1月28日

KITE2のサンプルプログラム
 例:一般の三角形(その一:三辺の長さを与える)
TO triangle :size1 :size2 :size3 local :a :b :c :angle1 :angle2 :angle3 :a = :size1 / radius * 180 / pi :b = :size2 / radius * 180 / pi :c = :size3 / radius * 180 / pi :angle1 = acos ((cos :a)-(cos :b)*(cos :c))/((sin :b)*(sin :c)) :angle2 = acos ((cos :b)-(cos :a)*(cos :c))/((sin :a)*(sin :c)) :angle3 = acos ((cos :c)-(cos :b)*(cos :a))/((sin :b)*(sin :a)) :angle1 = 180 - :angle1 :angle2 = 180 - :angle2 :angle3 = 180 - :angle3 fd :size1 rt :angle3 fd :size2 rt :angle1 fd :size3 rt :angle2 end

 例:一般の三角形(その二:三つの角度を与える)
TO triangle :angle1 :angle2 :angle3 local :a :b :c :side1 :side2 :side3 :a = :angle1 :b = :angle2 :c = :angle3 :side1 = acos ((cos :a)+(cos :b)*(cos :c))/((sin :b)*(sin :c)) :side2 = acos ((cos :b)+(cos :a)*(cos :c))/((sin :a)*(sin :c)) :side3 = acos ((cos :c)+(cos :b)*(cos :a))/((sin :b)*(sin :a)) :side1 = :side1 * pi / 180 * radius :side2 = :side2 * pi / 180 * radius :side3 = :side3 * pi / 180 * radius :angle1 = 180 - :angle1 :angle2 = 180 - :angle2 :angle3 = 180 - :angle3 fd :side3 rt :angle2 fd :side1 rt :angle3 fd :side2 rt :angle1 end

 例:正多角形
To poly :size :n local :side :angle :side = :size / radius * 180 / pi :angle = acos sqrt ((cos :side)-(cos 360/:n))/(1+cos :side) :angle = 180 - 2 * :angle repeat :n [fd :size rt :angle] end poly には一辺の長さと正何角形かを示す数を指定して実行します。たとえば poly 100 5 は一辺100の正五角形を描きます。

 例:星形正多角形
To polystar :size :n :m local :side :angle :side = :size / radius * 180 / pi :angle = acos sqrt ((cos :side)-(cos :m*360/:n))/(1+cos :side) :angle = 180 - 2 * :angle repeat :n [fd :size rt :angle] end polystar は一辺の長さと星形正何角形かを示す数とその星形正多角形の回転数を指定して実行します。たとえば polystar 100 5 2 は一辺100の星形正五角形を描きます。星形正七角形は polystar 100 7 2 と polystar 100 7 3 で描けます。勿論、polystar は poly の拡張ですから poly :size :n と polystar :size :n 1 は同じです。

 例:4面角万華鏡
TO tetra local :short :long :short = pi*radius*54.7333/180 :long = pi*radius*70.5333/180 hs setlinewidth 5 push setcolor 1 0 0 fd 2*:short setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long rt 60 setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:short rt 60 setcolor 1 0 0 fd 2*:short setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long rt 60 pu fd :long pd rt 60 setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:short setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short rt 60 setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:short setcolor 1 1 0 fd :long rt 60 pu bk :short pd rt 90 setcolor 1 0 0 fd :short setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd :short rt 90 pu pop end

 例:8面角万華鏡
TO cube local :short :midle :long :short = pi*radius*35.2666/180 :midle = pi*radius*45/180 :long = pi*radius*54.7333/180 hs surface 0.7 push setcolor 1 0 0 fd 2*pi*radius rt 45 setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd 2*:long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long rt 45 setcolor 1 0 0 fd 2*pi*radius rt 45 setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd 2*:long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long rt 45 pu fd :midle pd rt 90 setcolor 0 0 1 fd :short setcolor 1 1 0 fd 2*:long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd 2*:long setcolor 0 0 1 fd :short rt 90 pu bk :midle pd rt 45 setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd 2*:long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long rt 45 setcolor 1 0 0 fd 2*pi*radius rt 45 setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd 2*:long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long rt 45 pu fd :midle pd rt 90 setcolor 0 0 1 fd :short setcolor 1 1 0 fd 2*:long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd 2*:long setcolor 0 0 1 fd :short pu pop pd end

 例:20面角万華鏡
TO icosa local :short :midle :long :short = pi*radius*20.9/180 :midle = pi*radius*31.7166/180 :long = pi*radius*37.3833/180 hs setlinewidth 5 push setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle rt 36 setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long rt 36 setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle rt 36 setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long rt 36 setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle rt 36 pu fd :midle pd rt 90 setcolor 0 0 1 fd :short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd :short rt 90 pu bk :midle pd rt 36 setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle rt 36 setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long rt 36 setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle rt 36 setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long rt 36 pu fd :long pd rt 60 setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short rt 60 setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long rt 60 pu bk :short pd rt 90 setcolor 1 0 0 fd :midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd :midle rt 90 pu fd :short pd rt 60 setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long rt 60 setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short setcolor 1 1 0 fd :long setcolor 1 0 0 fd 2*:midle setcolor 1 1 0 fd :long setcolor 0 0 1 fd 2*:short rt 60 pu pop pd end

 例:球面正四面体
TO tetra local :size :size = 2*pi*radius*54.7333/180 hs setlinewidth 5 setcolor 0 1 0 fd :size lt 60 setcolor 1 0 0 fd :size pu bk :size pd rt 120 setcolor 0 0 1 fd :size lt 60 setcolor 0 1 0 fd :size pu bk :size pd rt 120 setcolor 1 0 0 fd :size lt 60 setcolor 0 0 1 fd :size pu bk :size pd rt 120 end

 例:球面立方体
TO cube local :size :size = 2*pi*radius*35.2666/180 hs setlinewidth 5 push setcolor 0 0 1 fd :size lt 60 setcolor 0 1 0 fd :size pu bk :size pd rt 120 setcolor 1 0 0 fd :size lt 60 setcolor 0 1 0 fd :size pu bk :size pd rt 120 setcolor 0 0 1 fd :size lt 60 setcolor 1 0 0 fd :size pu bk :size pd rt 120 setcolor 0 1 0 fd :size lt 60 setcolor 1 0 0 fd :size lt 60 setcolor 0 1 0 fd :size rt 60 setcolor 0 0 1 fd :size rt 60 setcolor 1 0 0 fd :size rt 60 setcolor 0 0 1 fd :size pu pop pd end

 例:球面正八面体
TO octa local :size :size = 2*pi*radius*45/180 hs setlinewidth 5 push setcolor 0 1 0 fd :size setcolor 1 0 0 fd :size rt 90 setcolor 0 1 0 fd :size rt 90 setcolor 1 1 0 fd :size setcolor 0 0 1 fd :size setcolor 0 1 0 fd :size rt 90 setcolor 0 0 1 fd :size rt 90 setcolor 1 1 0 fd :size setcolor 1 0 0 fd :size setcolor 0 0 1 fd :size rt 90 setcolor 1 0 0 fd :size rt 90 setcolor 1 1 0 fd :size pop end

 例:球面正十二面体
TO dodeca local :size :size = 2*pi*radius*20.9/180 hs setlinewidth 5 push setcolor 0 0 1 fd :size lt 60 setcolor 1 0 0 fd :size pu bk :size pd rt 120 setcolor 0 1 0 fd :size lt 60 setcolor 0 0 1 fd :size pu bk :size pd rt 120 setcolor 1 0 0 fd :size lt 60 setcolor 0 0 1 fd :size pu bk :size pd rt 120 setcolor 0 1 0 fd :size lt 60 setcolor 0 0 1 fd :size pu bk :size pd rt 120 setcolor 1 0 0 fd :size lt 60 setcolor 0 1 0 fd :size rt 60 setcolor 1 0 0 fd :size lt 60 setcolor 0 1 0 fd :size pu bk :size pd rt 120 setcolor 0 0 1 fd :size lt 60 setcolor 0 1 0 fd :size lt 60 setcolor 0 0 1 fd :size pu bk :size pd rt 120 setcolor 1 0 0 fd :size lt 60 setcolor 0 1 0 fd :size lt 60 setcolor 0 0 1 fd :size pu bk :size pd rt 120 setcolor 1 0 0 fd :size lt 60 setcolor 0 1 0 fd :size lt 60 setcolor 0 0 1 fd :size pu bk :size pd rt 120 setcolor 1 0 0 fd :size lt 60 setcolor 0 1 0 fd :size lt 60 setcolor 1 0 0 fd :size pu bk :size pd rt 120 setcolor 0 0 1 fd :size lt 60 pu fd :size lt 60 fd :size pd rt 60 setcolor 1 0 0 fd :size lt 60 setcolor 0 1 0 fd :size lt 60 setcolor 1 0 0 fd :size lt 60 setcolor 0 1 0 fd :size lt 60 setcolor 0 0 1 fd :size lt 60 pu pop pd end

 例:球面正二十面体
TO icosa local :size :size = 2*pi*radius*31.7166/180 hs setlinewidth 5 push setcolor 0 0 1 fd :size lt 108 setcolor 0 1 0 fd :size pu bk :size pd rt 72 setcolor 0 0 1 fd :size lt 108 setcolor 1 0 0 fd :size pu bk :size pd rt 72 setcolor 0 0 1 fd :size lt 108 setcolor 0 1 0 fd :size pu bk :size pd rt 72 setcolor 1 0 0 fd :size lt 108 setcolor 0 0 1 fd :size pu bk :size pd rt 72 setcolor 0 1 0 fd :size lt 108 setcolor 1 0 0 fd :size pu bk :size pd rt 72 st2 push2 pu2 rt2 72 fd2 :size lt2 36 pd2 setcolor 0 0 1 fd2 :size rt2 108 setcolor 1 0 0 fd2 :size pu2 bk2 :size pd2 lt2 72 setcolor 0 0 1 fd2 :size rt2 108 setcolor 0 1 0 fd2 :size pu2 bk2 :size pd2 lt2 72 setcolor 0 0 1 fd2 :size rt2 108 setcolor 1 0 0 fd2 :size pu2 bk2 :size pd2 lt2 72 setcolor 0 1 0 fd2 :size rt2 108 setcolor 0 0 1 fd2 :size pu2 bk2 :size pd2 lt2 72 setcolor 1 0 0 fd2 :size rt2 108 setcolor 0 1 0 fd2 :size pu2 bk2 :size pd2 lt2 72 synchro setcolor 1 0 0 fd :size fd2 0 lt 36 setcolor 0 1 0 fd2 :size rt2 36 setcolor 1 0 0 fd :size fd2 0 lt 36 setcolor 0 1 0 fd2 :size rt2 36 setcolor 1 0 0 fd :size fd2 0 lt 36 setcolor 0 1 0 fd2 :size rt2 36 setcolor 0 0 1 fd :size fd2 0 lt 36 setcolor 1 0 0 fd2 :size rt2 36 setcolor 0 0 1 fd :size fd2 0 lt 36 setcolor 0 1 0 fd2 :size rt2 36 nonsynchro pu pop pd pu2 pop2 pd2 ht2 end

KITE2に戻る

ホームページに戻る

数学教育を改善するためのソフト開発に戻る