如何计算法向量?

How to calculate the normal vector?

我正在用激光制作游戏。我需要将激光反射到旋转的物体上,但找不到正确的法向量。

示例:

现在我需要计算法线并将其归一化(我知道如何归一化)。归一化向量应该是 (-1, -1),但我该如何计算呢?我是否需要使用点积、角度或其他东西?

要将向量归一化,请将向量除以其大小...

point A: [0, 20] / root[sqr(0) + sqr(20)]= [(0 / 20), (20 / 20)] = [0, 1]

假设你有一堵墙从点 AB:

C相对于AB方向旋转anti-clockwise90度,D顺时针。 C的成分由[Ay - By, Bx - Ax]给出,D的成分只是减去这些。

您需要选择一致的约定,将 CD 作为任何墙的法线,这意味着您需要小心 排序 个墙点。

例如对于 A = [0, 20], B = [15, 5],正常的 C = [15, 15]D = [-15, -15]D 的规范化版本是 [-1/sqrt(2), -1/sqrt(2)] 不是 [-1, -1](你 确定 你知道如何正常化?)