寻找向量正常 - 背面算法

时间:2014-07-02 10:19:52

标签: graphics vector-graphics

对于背面剔除算法我需要找到每个多边形的法向量。

给出3分,我想找到一架飞机的法线。

所以我知道怎么做:

  1. 在飞机上找到2个向量

  2. 找到他们的交叉向量 - 这将给我正常的向量(a,b,c)

  3. 我的问题是,当找到2个向量时,点的顺序是否重要? 例如:给出3分:p1(0,0,0),p2(5,0,0),p3(10,10,10)

    如果我选择矢量

    ,这是否重要?
    V1=(p2-p1)=(5, 0, 0)-(0, 0, 0)=(5, 0, 0)
    V2=(p3-p1)=(10,10,10)-(0, 0, 0)=(10, 10, 10)
    

    v1=(p1-p2)
    v2=(p1-p3)
    

1 个答案:

答案 0 :(得分:1)

你的多边形有顶点abc

你计算向量:

v1 = a-c
v2 = b-c

这会将ab引用至c。如果您决定将b和c引用到a,那将是相同的。 计算叉积v1*v2(这给出了垂直于v1和v2的向量)并将其标准化。

如果你确实计算了(a-b)(a-c)而不是(b-a)(c-a),那么结果矢量将被镜像(即指向错误的方向)。

OT:使用/ http://en.wikipedia.org/wiki/Fast_inverse_square_root进行标准化,该{{3}}完全是为计算面法线而开发的