私はあなたにはかなり単純な質問があります.. 私は長い時間前に答えを見つけたはずですが、どうにかして私はこの些細な問題の周りに私の頭を包むことはできません。2Dベクトルの一般的な方向を決定します
与えられたベクトルv =(x、y)、私はそれが「一般的な」方向であることを知りたいと思います。
ベクトルの向きが45度から135度の間であれば、ベクトルの一般的な向きは「上向き」です。これは「上」、「下」、「左」または「右」です。 'Left'は135〜225度です。 '下降'は225〜315度です。 「右」は315度から45度の間です。
角度が正確に45,135,225、または315度の場合は、私は本当に気にしません。
キャッチは、私は三角法を使いたくありません。私は単純な解決策があると確信しています。
解決策は、8つの円全体を分割できると思います。ここに私がこれまで持っているものがあります。
if(x > 0 && y > x)
return Up
if(x > 0 && y > 0 && y < x)
return Right
... etc ...
基本的には、私は解決策を見つけることができます。私はこの問題に対するあなた自身のアプローチにもっと興味があります。
ありがとうございます!
EDIT:使用されたベクターが正規化されていません。一対の点を使って任意のベクトルを表すことができます。単にベクトルの原点が(0,0)であるとふりまえてください。
私は混乱するかもしれませんが、どのようにベクトルをxとyとして表現し、次にxとyを両方とも位置的であるかのように比較していますか?一つは方向であり、もう一つは大きさではいけないのか? –
@Michael:ベクトルを表すには2通りの方法があります。方向と大きさ(角度と直角三角形の斜辺のような)を持つことができます。もう1つの方法は、直角三角形の脚のようなxとy成分を使うことです。 OPがトリグを避けようとしているので、x/yアプローチはより適切と思われる。 –
@Micheal:http://en.wikipedia.org/wiki/Unit_vectorを参照してください – Randolpho