【发布时间】:2016-04-25 20:14:41
【问题描述】:
这是我计算交点的代码:
var wallWidth = 1200;
var wallHeight = 500;
var containerWidth=1200,containerHeight=700; //div
//camera
camera = new THREE.PerspectiveCamera(60, containerWidth/containerHeight, 1, 10000);
camera.position.set(0, -wallHeight / 2 + 10, wallWidth);
这是我在鼠标移动时与对象相交的函数
function onDocumentMouseMove(event) {
mouse.x = ( event.clientX / containerWidth ) * 2 - 1;
mouse.y = -( event.clientY / containerHeight ) * 2 + 1;
var deltaX = event.clientX - mouseX;
var deltaY = event.clientY - mouseY;
raycaster.setFromCamera(mouse, camera);
var intersects = raycaster.intersectObjects(interactiveObj, true);
if (intersects.length > 0) {
//interaction with object
}
render();
}
它工作正常,即当 div 的宽度为 100% 时,我在 intersects 对象中获取值,但是当我将 div 大小减小到 80% 时,对象没有正确拾取,即它选择了当鼠标离物体很远时,物体。
【问题讨论】:
标签: three.js raycasting