前節までで、円弧や放物線などの滑らかな「曲線」を、折れ線で近似することで描く方法を扱いました。それでは、2 次元の「図形」を描くにはどうすればよいでしょうか?
単純な「図形」を描くのは簡単で、同じように、その境界(図形の周り)の曲線[*1]を折れ線で近似して作った「多角形」を描けばよいのです。
前節までで、円弧や放物線などの滑らかな「曲線」を、折れ線で近似することで描く方法を扱いました。それでは、2 次元の「図形」を描くにはどうすればよいでしょうか?
単純な「図形」を描くのは簡単で、同じように、その境界(図形の周り)の曲線[*1]を折れ線で近似して作った「多角形」を描けばよいのです。
それでは、具体的に作ってみましょう。と言っても、やることは簡単です。「折れ線」の代わりに「多角形」を描けばよいのですが、「多角形」を描く命令は既になでしこに用意されているので、今までの知識で簡単に作れます。
「楕円」を描く命令[*2]を考えましょう。楕円の境界の点列は、以前 2(c) 節の「半楕円曲線」命令のときにも作りました。それをほぼそのまま流用できます。
# 「100,200から300,400へ50で楕円」のように使う ●楕円({グループ=?母艦}OBJのX1,Y1からX2,Y2へAで) Rとは数値。θとは数値。ΔTとは数値。Tとは数値 (X2-X1),(Y2-Y1)をR,θへ極座標変換 ※ここの値が 2 倍に変わった: ΔT=2*PI/分割数 点列とは配列。Xとは数値。Yとは数値 点列[0][0]=X1。点列[0][1]=Y1 (分割数)回 TにΔTを直接足す X=R/2*(1-COS(T)) Y=A*SIN(T) X,Yをθだけ回転 点列[回数][0]=X1+X 点列[回数][1]=Y1+Y OBJに点列で多角形。※ここが「折れ線」から「多角形」に変わった。
曲線のときは、楕円を半周する点列で十分でしたが、今度は楕円を一周させる必要があることにも注意してください。