0
我最近在玩Away3D圖書館,並在Away3D中找到臉部中心時遇到問題。爲什麼Away3DLite有一個face.center功能,而Away3D沒有呢?和這是什麼替代解決方案?離開3D臉部鏈接
我最近在玩Away3D圖書館,並在Away3D中找到臉部中心時遇到問題。爲什麼Away3DLite有一個face.center功能,而Away3D沒有呢?和這是什麼替代解決方案?離開3D臉部鏈接
如果你想找到一個面的中心,它只是所有頂點構成該側面的平均位置:
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
和vertices
)這樣的兩個對象引用來解引用它,這是不必要的沉重。
我在Away3d Lite中看不到中心。你使用的是哪個版本的庫? - 我正在看away3D lite 1.0.2 http://away3d.com/livedocs/lite_1.0.2_lib/ –