2017-04-14 7 views
1

私は、半径から辺までの2本の線があり、そのうちの1本が開始点であり、もう1本が終了点であるとします。私はどの方向にそれらを回転させて終点に最も速く到達するべきかを知る必要があります。 (これは1ループを加算して減算するwhileループを介して行われます)。たとえば、StartRotation = 45とEndRotation = 270とすると、減算を追加するかどうかを調べるには数学アルゴリズムが必要です(45度から270度の円の周りを反時計回りにすると減算されるため、クロック賢明)。円の周りを最も素早く見つける方法はありますか?

(注記:-90に回転を設定し、630、等... 270にそれを設定することと同じです)

答えて

1

可能なロジック:

Normalize angles 

if Start < End 
    Direction = 1 
else 
    Direction = - 1 

if Abs(Start - End) > 180 
    Direction = - Direction 
0

二つの角度います| SE | 360°| | S-E |である。最小限に抑えてください。

D= S - E 
if D > 0: 
    if D > 180: 
    D-= 360 
else: 
    if D < -180: 
    D+= 360 

Dは符号付き振幅を与える。

関連する問題