Actionscript 远离三维面链接

Actionscript 远离三维面链接,actionscript,away3d,Actionscript,Away3d,我最近在玩Away3D库,在Away3D中查找人脸中心时遇到问题。为什么Away3DLite有face.center功能,而Away3D没有?还有什么替代方案呢?如果你想找到一个面的中心,它只是组成该面的所有顶点的平均位置: function getFaceCenter(f : Face) : Vector3D { var vert : Vertex; var ret : Vector3D = new Vector3D; for each (vert in f.vert

我最近在玩Away3D库,在Away3D中查找人脸中心时遇到问题。为什么Away3DLite有face.center功能,而Away3D没有?还有什么替代方案呢?

如果你想找到一个面的中心,它只是组成该面的所有顶点的平均位置:

function getFaceCenter(f : Face) : Vector3D
{
    var vert : Vertex;
    var ret : Vector3D = new Vector3D;

    for each (vert in f.vertices) {
        ret.x += vert.x;
        ret.y += vert.y;
        ret.z += vert.z;
    }

    ret.x /= f.vertices.length;
    ret.y /= f.vertices.length;
    ret.z /= f.vertices.length;

    return ret;
}
上面是一个计算平均值的非常简单的函数,尽管它是基于3D向量而不是简单的标量数。该平均值是面中所有顶点的中心


如果您需要经常这样做,请通过阻止该方法分配向量(通过传递返回值应写入的向量)来优化该方法,并为顶点列表长度创建一个临时变量,而不是通过两个对象引用(如min(
f
vertexs
)对其取消引用,这是不必要的沉重。

我在Away3d Lite中也看不到中心。您正在使用哪个版本的库?-我正在看away3D lite 1.0.2