解決したようで何よりですが、後から見て自分のコードがいまいちに感じた(変数Dの扱いが気持ち悪い)ので一言補足というか別案を。 こんな感じに与えられた角度を-180~+180の範囲に変換する関数を用意して、 DEF NORMANG(A) WHILE A<-180:A=A+360:WEND WHILE A> 180:A=A-360:WEND RETURN A END -180~+180の範囲を超える可能性がある角度の値(ROTの値やSTCとROTの差など)はこの関数を通して、その結果を判定するようにした方が綺麗だし汎用性がある(例えば差の大きさで回転速度が変動するようにしたり)かなとも思います。