1
我有一個用THREE.CanvasRenderer()渲染的3D立方體,我試圖打開一個特定的網頁,取決於雙擊哪個面的多維數據集。但是,無論點擊哪張臉,都會打開相同的頁面。一些黑客調試(我不知道如何使用控制檯)顯示intersects [0] .faceIndex總是'11'。我怎樣才能得到它返回多維數據集的最近的臉。three.js raycaster.intersectObject()每次返回相同的faceIndex
這是我的js的部分處理這個;
document.addEventListener('dblclick', onDocumentMouseDblClick, false);
function onDocumentMouseDblClick(event) {
event.preventDefault();
mouse.x = (event.clientX/renderer.domElement.width) * 2 - 1;
mouse.y = -(event.clientY/renderer.domElement.height) * 2 + 1;
raycaster.setFromCamera(mouse, camera);
var intersects = raycaster.intersectObject(cube);
if (intersects.length > 0) {
if (intersects[0].faceIndex = 1 || 2) {
window.open("About.html", "_self")
//title.innerHTML = intersects[ 0 ].faceIndex;
}
if (intersects[0].faceIndex = 3 || 4) {
window.open("Mondrian.html", "_self")
//title.innerHTML = intersects[ 0 ].faceIndex;
}
if (intersects[0].faceIndex = 5 || 6) {
window.open("page3.html", "_self")
//title.innerHTML = intersects[ 0 ].faceIndex;
}
if (intersects[0].faceIndex = 7 || 8) {
window.open("page4.html", "_self")
//title.innerHTML = intersects[ 0 ].faceIndex;
}
if (intersects[0].faceIndex = 9 || 10) {
window.open("page5.html", "_self")
//title.innerHTML = intersects[ 0 ].faceIndex;
}
if (intersects[0].faceIndex = 11 || 12) {
window.open("page6.html", "_self")
//title.innerHTML = intersects[ 0 ].faceIndex;
}
我開始跟隨THREE.js interactive cubes example和讀取THREE.raycaster documentation揭示了十字路口應該由最近的距離進行排序。我已經閱讀了一些使用Vector3和SO的帖子,這些帖子或者不起作用,或者我誤解了它們。由於聲譽而無法鏈接它們。
您可以隨時把鏈接在你的問題,有或無的聲譽...... –
不超過兩個環節,沒有代表大於零 – dlseanan
你不檢查平等,你在你的陳述中作出任務。 – gaitat