円弧の角度が合わない
Posted: 2006年5月02日(火) 14:36
BASICの超Bな者です。初歩的な質問です。
(Ver 4.22.00を使用)
(1)円弧の角度位置
以下を実行して、例えばStartに30度、Stopに60度を入れると、円弧の位置が合いません。(0度、90度、180度などは合うようだ)
Line命令では角度と合っているので、ラジアン角は正常だと思います。
ピッタリと合わせるにはどうすればいいのでしょうか?
ちなみに99Basicでは同じ考えでやってもピッタリと合います(但し開始角と終了角が時計回りなので逆にしないといけませんが)
'================
#N88BASIC
10 Dim pai=3.1415927 as double
Dim OX=150 as double '円の中心座標
Dim OY=150 as double
Dim R=100 as double '円の半径
Dim i as double '角度線の角度
Dim irad as double 'rad角度
Dim Pstart as double '開始角
Dim Pstop as double '終了角
Dim rad_Pstart as double
Dim rad_Pstop as double
Cls 3
For i=0 to 350 step 10
irad=i*pai/180
Line (2*OX,2*OY)-(2*OX+(R+30)*Cos(irad),2*OY-(R+30)*Sin(irad)),4
Next i
Input "Start角度(度)は?";Pstart
Input "Stop角度(度)は?" ;Pstop
Print
rad_Pstart=Pstart*pai/180
rad_Pstop =Pstop*pai/180
Circle (2*OX,2*OY),R,7,rad_Pstart,rad_Pstop,1,f,2
Line (2*OX,2*OY)-(2*OX+R*Cos(rad_Pstart),2*OY-R*Sin(rad_Pstart)),7
Line (2*OX,2*OY)-(2*OX+R*Cos(rad_Pstop),2*OY-R*Sin(rad_Pstop)),7
'================
(2)扇方円弧の中を指定の色で塗りつぶす方法がどうすればいいのでしょうか?
Circle (2*OX,2*OY),R,7,rad_Pstart,rad_Pstop,1,f,2
とやっても塗りつぶしてくれない。
(Ver 4.22.00を使用)
(1)円弧の角度位置
以下を実行して、例えばStartに30度、Stopに60度を入れると、円弧の位置が合いません。(0度、90度、180度などは合うようだ)
Line命令では角度と合っているので、ラジアン角は正常だと思います。
ピッタリと合わせるにはどうすればいいのでしょうか?
ちなみに99Basicでは同じ考えでやってもピッタリと合います(但し開始角と終了角が時計回りなので逆にしないといけませんが)
'================
#N88BASIC
10 Dim pai=3.1415927 as double
Dim OX=150 as double '円の中心座標
Dim OY=150 as double
Dim R=100 as double '円の半径
Dim i as double '角度線の角度
Dim irad as double 'rad角度
Dim Pstart as double '開始角
Dim Pstop as double '終了角
Dim rad_Pstart as double
Dim rad_Pstop as double
Cls 3
For i=0 to 350 step 10
irad=i*pai/180
Line (2*OX,2*OY)-(2*OX+(R+30)*Cos(irad),2*OY-(R+30)*Sin(irad)),4
Next i
Input "Start角度(度)は?";Pstart
Input "Stop角度(度)は?" ;Pstop
rad_Pstart=Pstart*pai/180
rad_Pstop =Pstop*pai/180
Circle (2*OX,2*OY),R,7,rad_Pstart,rad_Pstop,1,f,2
Line (2*OX,2*OY)-(2*OX+R*Cos(rad_Pstart),2*OY-R*Sin(rad_Pstart)),7
Line (2*OX,2*OY)-(2*OX+R*Cos(rad_Pstop),2*OY-R*Sin(rad_Pstop)),7
'================
(2)扇方円弧の中を指定の色で塗りつぶす方法がどうすればいいのでしょうか?
Circle (2*OX,2*OY),R,7,rad_Pstart,rad_Pstop,1,f,2
とやっても塗りつぶしてくれない。