求解二维和三维法向量的方法

    xiaoxiao2022-07-04  122

    二维曲线法向量的求解示例:

    Here's an example using an analytic curve of y = x^2

    x = 0: 0.1: 1; y = x.*x; dy = gradient(y); dx = gradient(x); quiver(x,y,-dy,dx) hold on; plot( x, y)

    which gives:

    三维三角面片顶点法向量的求解:顶点相邻各个三角面片单位法向量的叠加。

    http://www.lighthouse3d.com/opengl/terrain/index.php3?normals

    The normal at a vertex should be computed as the normalised sum of all the unit length normals for each face the vertex shares. Consider the following image:

    In the above image, v represents the normal at the center vertex. Each vij represents a normal for each face that shares the center vertex. So for instance v12 is the unit lenght normal for the bottom right face.

    The vertex normal v is computed as the normalised sum of all vij vectors:


    v = normalised(sum(v12, v23, v34, v41)) where vij = normalised(vi x vj) // normalised cross product 
    最新回复(0)