Full BASICには円や扇形を描く専用命令がありません。
扇形を描くためには,扇形を多角形で近似し,その全頂点の座標を2次元配列に代入してMAT PLOT文を適用します。
次のプログラムは,円グラフを描きます。
単位円の上端を基点として時計回りにθだけ回転した点の座標が(sinθ,cosθ)であることを利用しています。
扇形を1002角形で近似しています。(弧のために1001個の点を使う)
100 DATA "東京", 1257 110 DATA "神奈川",879 120 DATA "埼玉",705 130 DATA "千葉",605 140 DATA "茨城",297 150 DATA "群馬",202 160 DATA "栃木",201 170 DECLARE EXTERNAL PICTURE sector 180 SET WINDOW -1,1,-1,1 190 SET AREA STYLE "HATCH" 200 LET t=0 210 DO 220 READ IF MISSING THEN EXIT DO:s$,n 230 LET t=t+n 240 LOOP 250 RESTORE 260 LET a=0 270 LET i=0 280 DO 290 LET i=i+1 300 SET AREA COLOR i 310 SET AREA STYLE INDEX MOD(i-1,6)+1 320 READ IF MISSING THEN EXIT DO:s$,n 330 LET d=n/t*360 340 DRAW sector(a,d,s$) 350 LET a=a+d 360 LOOP 370 END 1000 EXTERNAL PICTURE sector(a,d,s$) 1010 OPTION ANGLE DEGREES 1020 DIM p(0 TO 1001, 2) 1030 FOR i=0 TO 1000 1040 LET t=a+d*i/1000 1050 LET p(i,1)=SIN(t) 1060 LET p(i,2)=COS(t) 1070 NEXT i 1080 LET p(1001,1)=0 1090 LET p(1001,2)=0 1100 MAT PLOT AREA:p 1110 SET TEXT JUSTIFY "CENTER","HALF" 1120 SET TEXT BACKGROUND "OPAQUE" 1130 PLOT TEXT ,AT SIN(a+d/2)*0.8, COS(a+d/2)*0.8:s$ 1140 END PICTURE
関東一都六県の人口の構成比のグラフです。
200〜240行で全都県の人口を求めています。
250〜360行で再び人口データを読み込み,人口に比例した扇形を描いています。
数値は全体を360とする値に換算しています。
1000〜1140行の外部絵定義sectorは,上端を基点として時計まわりの角度でa°から(a+d)°の弧に対する扇形と,
s$で指定されたラベルを描きます。
補足 SAMPLEフォルダにあるsector.basも扇形の描き方を示す例です。