N.E.さんへのお返事です。
> 扇形を描こうとしているのですが、多角形として描くために、一点一点座標を求めています。
ちなみに私ならこう記述します。(2つの例)
!最近のグラフィックス・ライブラリ系の機能(特にワールド座標変換)がない場合
!自分でその機能を実現します。
LET p=1 !丸めする小数桁位置
LET zm=1/10^p !倍率
LET a=550 !描画領域
LET b=400
SET bitmap SIZE a,b
SET WINDOW 0,(a-1)*zm,0,(b-1)*zm !※左下が原点
CALL fan(100,50,20,60,300) !小さい
CALL fan(200,150,200,-150,120) !中ぐらい
CALL fan(250,100,350,30,330) !大きい
SUB fan(X,Y,R,SA,EA) !中心(X,Y)、半径Rの扇形を描く ※0≦R、-360≦SA≦EA≦360
LET cx=ROUND(X*zm, p) !中心点と開始点を結ぶ
LET cy=ROUND(Y*zm, p)
PLOT LINES: cx,cy;
FOR i=SA TO EA STEP 0.5
LET th=RAD(i) !ラジアンへ
LET xx=ROUND((R*COS(th)+X)*zm, p) !問題座標へ
LET yy=ROUND((R*SIN(th)+Y)*zm, p)
PLOT LINES: xx,yy; !多角形近似
PRINT i;xx;yy !debug
NEXT i
PLOT LINES: cx,cy !終了点と中心点を結ぶ
END SUB
!FULL BASICのグラフィックス・ライブラリ系の機能を使って記述すると
SET LINE COLOR 4 !上書きを確認する
DRAW arc(100,50,20,60,300) WITH SCALE(zm) !小さい
DRAW arc(200,150,200,-150,120) WITH SCALE(zm) !中ぐらい
DRAW arc(250,100,350,30,330) WITH SCALE(zm) !大きい
PICTURE arc(X,Y,R,SA,EA) !中心(X,Y)、半径Rの扇形を描く ※0≦R、-360≦SA≦EA≦360
DRAW arc0(SA,EA) WITH SCALE(R)*SHIFT(X,Y)
END PICTURE
PICTURE arc0(SA,EA) !原点を中心とした半径1の扇形を描く ※-360≦SA≦EA≦360
PLOT LINES: 0,0; !中心点と開始点を結ぶ
FOR i=SA TO EA STEP 0.5
LET th=RAD(i) !ラジアンへ
LET x=COS(th) !問題座標へ
LET y=SIN(th)
PLOT LINES: x,y; !多角形近似
!!!PRINT i;x;y !debug
NEXT i
PLOT LINES: 0,0 !終了点と中心点を結ぶ
END PICTURE
END