1
我有一個平坦的表面,我已經爆炸並鑲嵌成三角形。我想獲得每張臉的位置來應用動畫,但顯然我無法做到這一點。Three.js - 獲取棋盤格對象的單個面的位置
if (intersects.length > 0) {
// if the closest object intersected is not the currently stored intersection object
if (intersects[0].object != INTERSECTED) {
if (INTERSECTED) {
INTERSECTED.face.color.setHex(INTERSECTED.currentHex);
}
INTERSECTED = intersects[0];
INTERSECTED.currentHex = INTERSECTED.face.color.getHex();
INTERSECTED.face.color.setHex(0xc0392b);
INTERSECTED.object.geometry.colorsNeedUpdate = true;
var position = new THREE.Vector3();
position.setFromMatrixPosition(INTERSECTED.matrixWorld);
alert(position.x + ',' + position.y + ',' + position.z);
}
}
我試圖用INTERSECTED.face.matrixWorld.getPosition()
,如this example規定,但它拋出一個錯誤。 Here你可以找到完整代碼的JSFiddle。你知道我的代碼有什麼問題嗎?
預先感謝您的回覆!
您是否檢查過getPosition是matrixWorld上的方法?你得到什麼樣的錯誤? –
你說得對,我編輯了這個問題。我得到'Uncaught TypeError:無法讀取未定義的屬性'元素'。你有什麼想法嗎? –
我對圖書館並不熟悉,但我沒有看到「元素」會從哪裏來。錯誤是否來自庫中某處的代碼,特別是getPosition函數?就在我頭頂,聽起來像一個'this'在某個地方沒有按照預期執行,可能需要某種綁定。 –