正确的方法来获得向内指向法线的一列点
本文关键字:一列 方法 | 更新日期: 2023-09-27 17:50:55
我正在计算点列表的向内指向法线(dy,-dx)。然而,我认为我没有得到正确的结果,有没有一种方法来验证正确性?我正在使用:
List<Point> points = new List<Point>(7);
points.Clear();
points.Add(new Point(378, 110));
points.Add(new Point(190, 130));
points.Add(new Point( 65, 365));
points.Add(new Point(300, 100));
points.Add(new Point(500, 425));
points.Add(new Point(225, 395));
points.Add(new Point(378, 110));
int[] dx = new int[7];
int[] dy = new int[7];
// loop over line segments of hull to find inward-pointing normals, (dy,-dx)
for (int j = 0; j < 7- 1; j++)
{
dx[j] = P[j + 1].X - P[j].X;
dy[j] = P[j + 1].Y - P[j].Y;
}
dx[7-1] = P[1].X - P[7-1].X;
dy[7-1] = P[1].Y - P[7-1].Y;
然而我认为我没有得到正确的结果。我:
dx
[0] 125
[1] 110
[2] 78
[3] 122
[4] -275
[5] -160
[6] 125
dy
[0] -235
[1] -30
[2] 10
[3] 315
[4] -30
[5] -30
[6] -235
有没有人有计算点列表向内指向法线的经验?
看看这个网站可以帮你解决你的问题…
https://gamedev.stackexchange.com/questions/26951/calculating-the-2d-edge-normals-of-a-triangle但是平面上的基本代数指出逆法向量(N)等于-N