我对你有一个相当简单的问题..我觉得我很早以前应该找到答案,但不知何故,我无法将我的头围绕这个微不足道的问题。给定一个向量v =(x,y),我想知道它是'一般'方向。即'向上','向下','向左'或'向右'确定一个2D矢量的大致方向
如果矢量的方向介于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)。
好的,我可能会感到困惑,但你如何将一个向量表示为x和y,然后将x和y比较,就好像它们都是位置的?应该不是一个方向,另一个方向呢? – 2009-06-19 02:06:08
@Michael:有两种方法来表示一个Vector。你可以有一个方向和一个量级(如一个角度和一个直角三角形的斜边)。另一种方法是使用x和y分量,如直角三角形的腿。由于OP正试图避免触发,x/y方法似乎更合适。 – 2009-06-19 02:09:24
@Micheal:请参阅http://en.wikipedia.org/wiki/Unit_vector – Randolpho 2009-06-19 02:24:14