如何选择指向任何凸多边形内部的法向量(2d)?

时间:2015-05-08 11:22:42

标签: math vector geometry

好的,我有一个编程任务,cyrus-beck算法。该算法需要normal vector指向任何凸多边形内部。

现在我只是检查功能,检查点是在边缘内还是在边缘外。

This question告诉我如何计算法向量,但它给出了两个结果。我仍然在努力选择应该使用哪种向量。

什么是指向多边形内部的法向量的标准?

是否有任何公式/方法可以计算多边形中任何边的法线(指向内部)?

请轻松解释,因为我不太了解矢量和数学的东西。

1 个答案:

答案 0 :(得分:3)

如果顺时针顺序有n个点p [],那么为了使点p [i]和p [i + 1]之间的边缘向内垂直,你可以旋转向量p [i] - > p [i + 1]顺时针旋转90度。那就是:

double dx = p[i+1].x - p[i].x; // x component of edge
double dy = p[i+1].y - p[i].y; // y component of edge
double ndx = dy; // x component of normal
double ndy = -dx; // y component of normal

(注意最后一条边使用p [n-1]和p [0](按此顺序))。

如果你有逆时针顺序的点,则否定n的两个分量。