找到一个点相对于xy平面中另一个点的方向

时间:2012-01-27 14:57:06

标签: math geometry point direction coordinate

我有问题(也有解决方案)。我想知道的是如何达到“那个”解决方案。 “那个”解决方案非常完美,适用于所有可能的组合。

假设您在XY坐标系中有3个点:P1(x1, y1)P2(x2, y2)P3(x3, y3)

现在,将点P2连接到P3。它将导致“射线”源自点P2并通过点P3。我使用了单词 ray ,因为我只想在一个方向上,即从P2到P3。

现在,就P1点而言, ray P2 --> P3是顺时针方向还是逆时针方向?


解决方案是:

  

使用以下公式来查找z1的值:

     

z1 = (x3 - x1)(y2 - y1) - (y3 - y1)(x2 - x1)

     

如果z1为正,则P2 --> P3为顺时针。如果z1为负数,则P2 --> P3为逆时针。如果它为0,则点位于从P1延伸的同一虚线上。

有人可以帮我解决一下这个解决方案吗?

2 个答案:

答案 0 :(得分:3)

您编写的公式与两个向量的交叉乘积的公式非常相似。由于交叉产品的方向取决于CW / CCW配置,因此您可以轻松地将其用于解决您的问题。

您可以构建两条光线P1->P2P1->P3。然后你可以拿他们的交叉产品。如果沿Z轴的产品组件为正,则P2和P3为逆时针顺序,反之亦然。

如果你试图这样做,结果,即十字产品中k的系数k(沿Z轴的单位向量),将与你提到的答案完全相同。

答案 1 :(得分:-1)

我不确定这是否有效。我试过了,但它一直给我两个相同的答案。 试试这些坐标:

Start point 0, 90, 0
Center point 0, 0, 0
End point 90, 0, 0
.....
directional vector 1, 0, 0
inverse directional vector -1, 0, 0