質問
私は簡単な質問いたします。たような気がすべての答えがなんだかんラップに私の頭の周辺のこの些細な問題です。
与えベクトルv=(x,y)、思いの"一般"に向かう。のいずれかできない','Down','左又は右
ベクターのリエンテーションは'Up'の場合、ベクトルの方向は45 135°になります。"左翼"は135 225℃。"を降りてすぐのところにあ間225 315°になります。権利'には315-45°になります。
んですが、ケアの場合は角度が45,135,225は315°になります。
のではございますが、私はしたくない三角法.きだと思うのだが、単純な解決策です。
と思い解決策が分割の円。こちらはうっています。
if(x > 0 && y > x)
return Up
if(x > 0 && y > 0 && y < x )
return Right
... etc ...
基本的には思いが問題の解決を図ります。私の関心は自分のアプローチはこの問題です。
よろしく!
編集 :のベクターに使用しない正規化されます。では任意のベクターペット。単に振りの原点ベクトル(0,0).
解決
方があるということでもあります。全てを実現する場合はabs(y)>abs(x)、その方向が垂直方向と、それ以外の方向は水平である。場合は、縦向きはyを示します上下、そうでないものづくりの中で回線が切断された場合を示すleft/right.い:
if (abs(y) > abs(x)) {
if (y > 0) up else down
} else {
if (x > 0) right else left
}
の45ish角度は常に多少時間が掛かります。
所属していません StackOverflow