vector问题的解释

我正在模拟一个蜈蚣游戏,我正在做蛇的运动。 我已经看到了这段代码,但不能得到它,我知道它获得了当前,以前的节点位置之间的不同,但是与法向vector相乘的点是多less呢?

for ( int i = 1 ; i < nodes.size(); i++ ) { Vec2f diff = nodes[i-1].m_Pos-nodes[i].m_Pos; float length = diff.length(); Vec2f norm = diff.normalized(); nodes[i].m_Pos+=(length - 5)*norm; } 

在math中,如果一个vector是垂直的,则该vector被认为是与一个表面垂直的。 换句话说,法向量总是指向远离某物的地方。

用标准vector乘以标量将得到一个代表法线方向位移的vector。 通常法线具有单位长度的便利特性,所以如果要在正常方向上移动5个单位,则不需要多于一个乘法。 如果不是正常情况下的单位长度,则需要昂贵的标准化。

现在,我担心这个代码片段中的命名。 规范实际上与正常的含义不同 。 在许多情况下,规范实际上是长度,大小或范围。 例如,一个向量的规范是代表其长度的标量。

直接在variablesnorm之上的事实是另一个名为lengthvariables,而norm被声明为一个向量而不是一个标量,它给出了足够的上下文线索来表明这个norm对于正常来说可能是短暂的,但这是一个糟糕的命名。