2

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

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

现在,将点 P2 与 P3 连接起来。它将导致“射线”源自点 P2 并通过点 P3。我使用 word ray是因为我只希望它在一个方向上,即从 P2 到 P3。

现在,关于点 P1,光线 P2 --> P3是顺时针方向还是逆时针方向?


解决方案是:

使用以下公式计算 z1 的值:

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

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

有人可以帮我解决这个问题吗?

4

2 回答 2

3

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

您可以构造两条射线P1->P2P1->P3。然后你可以采取他们的交叉产品。如果乘积沿 Z 轴的分量为正,则 P2 和 P3 为逆时针顺序,反之亦然。

如果您尝试这样做,则结果,即叉积中 k (沿 Z 轴的单位向量)的系数,将与您提到的答案完全相同。

于 2012-01-27T15:02:46.763 回答
-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
于 2012-04-26T06:54:05.733 回答