Dripです。
Myst さん、こんにちは。アークタンジェントを使用する方法を取られたようですね。
かなりいい線行ってるのでもう一息です。^^
grotateに使用する角度はラジアン値というものを使用しています。
指定に180とか、360とかいう数字は一切必要ありません。
とりあえず、Mystさんの作られたプログラムを一番簡単な修正で動くようにするには、
*180.0/Pi を -Pi/2 にします。
これだけで理想的な動作が実行されるはずです。
小学校でならう一周360度の角度と違い、ラジアン値で角度を指定する場合は0〜2πになります。
ディグリー(0〜360)の整数角度と、ラジアン値(0〜2π)の角度を
表示するサンプルを以下に示します。
buffer 3,256,256
font "MS ゴシック",128:color 255,240,240:pos 64,0:mes "↑":color
font "MS ゴシック",16
pos 56,100:mes "●":pos 180,100:mes "●"
pos 46,140:mes "‥":pos 190,140:mes "‥"
circle 104,100,136,160,0
circle 120,100,152,160,0
circle 104,101,136,161,0
circle 120,101,152,161,0
color 255,255,255:boxf 104,100,152,154
screen 0,400,300
repeat
redraw 0
color 255,255,255:boxf:color
mytan=-atan(200-mousex,150-mousey)
pos 200,150
gmode 0,256,256
grotate 3,0,0,mytan
pos 10,10
mes "ラジアン角度 :"+(mytan+3.141593)
mes "ディグリー角度:"+(int(mytan*57.295646)+180)
redraw 1
await 15
loop
このような三角関数を利用するプログラムが書けるようになると、
簡単な追尾ミサイルや距離の計算などができるようになります。
いろいろと研究してみてください。