如何确定一个点是在多边形之上还是之下,而不是在多边形内部?

时间:2011-03-05 13:48:37

标签: polygon point

我正在学习计算机图形学课程。在3D中,我有一个点和一个多边形,我想确定这个点位于我的多边形的上方或下方。谢谢您的回复,提前。

2 个答案:

答案 0 :(得分:1)

如果在多边形所在的平面的上方或下方,您可以将该点的点积与平面法线上的点积和平面上任意点的点积进行比较。或者,如果您愿意,可以查看法线与从平面上的点到点的矢量之间的点积的符号。

要检查它是否在直接位于上方或下方的意义上是“上方”或“下方”(即,不是偏向某处的某一侧),然后通过将整个物体沿着该方向投射到2d来做多边形点。正常,然后是正常测试的距离。

答案 1 :(得分:0)

这取决于你上面和下面的定义,让我先谈谈简单的案例:

  • 如果根据全局方向(通常是y轴或z轴)考虑上/下,只需比较该轴上的值。

好的,现在更难解释:多边形的哪一边是点。

  • 除非是平面,否则您无法立即为多边形决定它。因此,如果它是非平面的,你必须将它镶嵌成三角形并决定每一个。

  • 对于三角形,您可以决定一个点是在其上方还是下方(在3D中),首先计算构成三角形边的2个向量的叉积;这将定义方向(=“上方”和“下方”的定义),这取决于您使用这两个向量的顺序,所以要小心。然后计算新矢量的点积(称为该三角形的垂线)和点测试与三角基的差矢量。