Dripです。
マミヤさん、こんにちは。
確かに扇を描くのは標準命令では難しいですね。少し高度なテクニックになりますが、
APIを使用した扇の生成方法を以下に示します。
#module
#uselib "gdi32.dll"
#func CreatePen "CreatePen" int,int,int
#func GetStockObject "GetStockObject" int
#func CreateSolidBrush "CreateSolidBrush" int
#func SelectObject "SelectObject" int,int
#func Pie "Pie" int,int,int,int,int,int,int,int,int
#func DeleteObject "DeleteObject" int
#uselib "user32.dll"
#func ReleaseDC "ReleaseDC" int,int
//扇描画命令 fan
//px,py,ex,ey=扇を円に見立てた座標(circle命令と同じ)
//gox,goy=扇の開始点(無限直線座標で指定。半時計回り)
//enx,eny=扇の終了点(無限直線座標で指定。半時計回り)
//この命令は再描画スイッチがONの状態でも画面に反映されないので、実行後必ずredraw 1を使って再描画すること。
#deffunc fan int px , int py , int ex , int ey , int gox , int goy , int enx , int eny
mref bmscr,67
col = bmscr(40)
prm=px,py,ex,ey,gox,goy,enx,eny
CreatePen 0,0,col : pen=stat
if pen==0 : return -1
GetStockObject NULL_BRUSH : brush=stat
if brush==0 : return -1
CreateSolidBrush col : brush=stat
SelectObject hdc,pen : oldpen=stat
SelectObject hdc,brush : oldbrush=stat
Pie hdc,prm(0),prm(1),prm(2),prm(3),prm(4),prm(5),prm(6),prm(7)
SelectObject hdc,oldpen
SelectObject hdc,oldbrush
DeleteObject brush
DeleteObject pen
ReleaseDC hwnd,hdc
return 0
#global
//■主な使用方法
color 128,128,128:circle 224,144,424,344 //影
color 255,220,200:fan 220,140,420,340 , 0,480,320,0 //扇1
color 255,255,120:fan 220,140,420,340 , 320,0,0,480 //扇2
color //グラフらしく文字を描画してみる
pos 260,100:mes "地球の主な成分"
tmp=42120,57986,45954,46466,45954
x="":wpoke x,0,tmp:pos 360,240:mes x
repeat 4:wpoke x,cnt*2,tmp(cnt+1):loop
pos 240,210:mes x
k=0.0
repeat //回してみる
redraw 0
color 255,255,255:boxf 500,300,600,400:color ,(cnt*16)\256
a=k:repeat 3
fan 500,300,600,400 , 550+sin(a)*100,350+cos(a)*100,550+sin(a+1)*100,350+cos(a+1)*100
a+=2.0944:loop
redraw 1
k+=0.1
await 30
loop
少しパラメータの意味がわかりにくいかもしれませんが、その辺は試行錯誤で慣れてください。