【问题标题】:Away 3D Face Link客场 3D 人脸链接
【发布时间】:2011-08-15 16:19:29
【问题描述】:

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

【问题讨论】:

标签: actionscript away3d


【解决方案1】:

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

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(fvertices),这非常重。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 2011-09-06
    • 2013-10-23
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    相关资源
    最近更新 更多