我有三個js的飛機。它是雙面的,我的相機在場景中移動和旋轉。我的問題是,鑑於飛機的位置和旋轉以及相機的位置和旋轉,我怎麼能說出我所看到的飛機的哪一側?如何判斷相機是否在看飛機的表面
我的老辦法是這樣的(檢查從相機到飛機前後的距離),但顯然這不是最好的解決方案。
this.back.matrixWorldNeedsUpdate = true;
this.front.matrixWorldNeedsUpdate = true;
this.d1 = (new THREE.Vector3()).getPositionFromMatrix(this.back.matrixWorld).distanceTo(cameraSystem.camera.position);
this.d2 = (new THREE.Vector3()).getPositionFromMatrix(this.front.matrixWorld).distanceTo(cameraSystem.camera.position);
if((this.d1 - this.d2) < 0)'Facing the back Side'
else 'Facing the front Side'
謝謝!
你可以檢查兩個向量之間的角度:在該相機指向載體和飛機的正常。 –
非常感謝,希望我能夠upvote,作爲更多的信用的答案! :) –