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