円弧を描く
なでしこには、円弧を描く命令が無いらしいです。
とりあえず、ぱぱっと作ってみたのですが、世の中にはいろいろと方法があるそうで・・・
私には三角関数を使うのが一番わかりやすいです。他のアルゴリズムとか、速度が速いとかありますが、今のところこれでじゅうぶんです。
// 円弧の描画
母艦について
W=320。H=240。タイトルは「円弧の描画」
半径線はオン。 # オフにすると円弧のみ
150,100に50で0から90まで赤色の円弧。
●円弧(x,yにrで{=0}d1から{=0}d2までcの)
// x --- 円の中心x
// y --- 円の中心y
// r --- 円の半径r
// d1--- 描画開始角度(右方向が0゜=360゜)
// d2--- 描画終了角度
# 角度チェック
d1=d1と360の余り。d2=d2と360の余り。
もしd1<0ならばd1=d1+360
もしd2<0ならばd2=d2+360
#描画開始
線色はc。線太さは1。
sx,syをd1で座標計算。ex,eyをd2で座標計算。
もし半径線がオンならば
x,yからx+sx*r,y+sy*rへ線。x,yからx+ex*r,y+ey*rへ線。
dn=(d1+1)と360の余り。
必要の間
px,pyをdnで座標計算。
x+sx*r,y+sy*rからx+px*r,y+py*rへ線。sx=px。sy=py。
dn=(dn+1)と360の余り。もしdn=d2ならば抜ける。
x+sx*r,y+sy*rからx+ex*r,y+ey*rへ線。
●座標計算({参照渡し}xx,{参照渡し}yyをddで)
xx=COS(DEG2RAD(dd))。yy=SIN(DEG2RAD(dd))*(-1)
ddで条件分岐
0ならば、xx=1。yy=0。
90ならば、xx=0。yy=-1。
180ならば、xx=-1。yy=0。
270ならば、xx=0。yy=1。
最終更新:2009年09月11日 15:22