注:私はLuaを使用しています。
だから、私は円上の2点間の度を見つけようとしています。問題は340と20のようなもので、正解は40度ですが、次のようなことをします。
function FindLeastDegrees(s, f)
return ((f - s+ 360) % 360)
end
print(FindLeastDegrees(60, 260))
-- S = Start, F = Finish (In degrees)
これは、2つの間の距離を把握しようとする場合を除いて、すべての状況で機能します。この以下のコードは、私の次の失敗した試みです。
function FindLeastDegrees(s, f)
local x = 0
if math.abs(s-f) <= 180 then
x = math.abs(s-f)
else
x = math.abs(f-s)
end
return x
end
print(FindLeastDegrees(60, 260))
次に試しました:
function FindLeastDegrees(s, f)
s = ((s % 360) >= 0) and (s % 360) or 360 - (s % 360);
f = ((f % 360) >= 0) and (f % 360) or 360 - (f % 360);
return math.abs(s - f)
end
print(FindLeastDegrees(60, 350))
--> 290 (Should be 70)
だからそれは失敗した。:/
では、他の2つの度の間の最短の度をどのように見つけ、そこに到達するために時計回りまたは反時計回り(加算または減算)に移動する必要があるかどうかを確認します。私は完全に混乱しています。
私がやろうとしていることのいくつかの例...
FindLeastDegrees(60, 350)
--> 70
FindLeastDegrees(-360, 10)
--> 10
とても難しいようです!私は使用する必要があることを知っています...
- 係数
- 絶対値?
また、値「Finish」を取得するために加算または減算する必要がある場合は、それを返したいと思います。
長い説明で申し訳ありませんが、おそらくあなたはそれを持っていると思います....:/