查找多边形内侧的算法

时间:2018-11-23 07:18:45

标签: c math vector vector-graphics cad

在类似CAD的应用程序中,我有不同种类的2D多边形。它们可以是凹面或凸面,可以顺时针或逆时针绘制。

现在,我想找出这种多边形的内侧在哪里,这意味着我想在其开头添加一个矢量,该矢量与下一个多边形呈90度角,但指向该多边形的内侧。

所以:您知道如何计算该值并找到此附加向量的内面吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

给定多边形的n个边缘向量v_1,...,v_n,您可以找到内侧,如下所示:

  1. 对于从1到n的i,计算v_i,v_(i + 1)之间的夹角(对于i = n,请改用v_n和v_1)
  2. 总结这些角度

如果总和为2pi / -2pi(或360 / -360度),则内侧位于“右侧/左侧”

答案 1 :(得分:1)

在任意位置取一个点,创建一个新矢量列表,每个矢量都从该点到边缘矢量,并将该列表中每个矢量与下一个矢量(包括第一个矢量)所成的角度相加。如果点在外部,则结果为0;如果点在外部,则结果为360;如果在内部,则结果为-360(逆时针)。