确定线的哪一侧开启,给定第三点指示所需侧

时间:2012-12-05 13:31:31

标签: python line computational-geometry

我正在尝试使用一个函数来获取用于形成直线,参考点和点的两个点,如果该点位于所形成的线上,则输出True,或者

在线的外侧部分已知的点,以及需要确定它是否在由形成的线划分的区域的外侧或内侧的点。在这种情况下,该行计为外部。

这类似于this问题,但是期望的一方可能有正面或负面的交叉产品,因此需要采用稍微不同的方法。我已经尝试了几次让它与交叉产品一起使用,此时我只是在找一些可行的东西。

编辑: 由于问题的性质,简单地使用内部/外部,似乎比“侧面a”和“侧面b”或“左侧”和“右侧”更好。在这种情况下,“内部”点将被忽略,而“外部”点将保留。

以下是使用该行两边的示例:

enter image description here

虽然它们是正方形,但每个都代表一个“点”。红色正方形是构成直线的两个方块。然后有一个绿色和蓝色点。绿点在蓝点内部,蓝点在内部。这些代表外部点。蓝色圆圈代表外部认为的点。蓝色圆圈点被认为是参考蓝点的外部点,而绿色圆圈点被认为是外部点到绿点。

1 个答案:

答案 0 :(得分:0)

您仍然可以使用交叉产品。如果AB是定义该行的点,则R是您的参考点,P是您的测试点,然后形成两个交叉产品{{1} } x ABAR x AB。如果点位于线的同一侧,则这两个矢量的点积为正,否则为负。