好的,我有一个编程任务,赛勒斯贝克算法。该算法需要normal vector
将该点指向任何凸多边形内部。
现在我只是在检查功能,检查点是在边缘内还是在边缘外。
这个问题告诉我如何计算法向矢量,但是它给了我两个结果。而且我仍然在努力选择应该使用的向量。
指向多边形内部的法线向量的标准是什么?
是否有任何公式/方式可以计算多边形中任意边的法线(指向内部)?
请轻松进行解释,因为我对向量和数学知识不太了解。
如果您有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的两个分量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句