Javascript 如何检测单击了多维数据集的哪一侧
现在,我正在尝试创建一个导航菜单,但要做到这一点,我需要检测用户单击了哪一侧。有没有任何方法可以通过光线投射实现这一点,或者如果没有,还有其他方法 如果您需要,以下是我的代码: 简短的版本在这里Javascript 如何检测单击了多维数据集的哪一侧,javascript,3d,three.js,Javascript,3d,Three.js,现在,我正在尝试创建一个导航菜单,但要做到这一点,我需要检测用户单击了哪一侧。有没有任何方法可以通过光线投射实现这一点,或者如果没有,还有其他方法 如果您需要,以下是我的代码: 简短的版本在这里 var geometry = new THREE.BoxGeometry(200, 200, 200); var material = new THREE.MeshLambertMaterial( { color: 65535, morphTargets: true }); for (
var geometry = new THREE.BoxGeometry(200, 200, 200);
var material = new THREE.MeshLambertMaterial(
{
color: 65535,
morphTargets: true
});
for (var i = 0; i < 8; i++)
{
var vertices = [];
for (var v = 0; v < geometry.vertices.length; v++)
{
vertices.push(geometry.vertices[v].clone());
if (v === i)
{
vertices[vertices.length - 1].x *= 2;
vertices[vertices.length - 1].y *= 2;
vertices[vertices.length - 1].z *= 2
}
}
geometry.morphTargets.push(
{
name: "target" + i,
vertices: vertices
})
}
mesh = new THREE.Mesh(geometry, material);
mesh.position.y = 0;
scene.add(mesh);
scene.background = new THREE.Color(15790320);
var params = {
influence1: 1,
influence2: 1,
influence3: 1,
influence4: 1,
influence5: 1,
influence6: 1,
influence7: 1,
influence8: 1
};
var geometry = new THREE.PlaneBufferGeometry(5e3, 5e3);
geometry.rotateX(-Math.PI / 2);
var material = new THREE.MeshBasicMaterial(
{
color: 975132,
overdraw: .5
});
var-geometry=new-THREE.BoxGeometry(200200200200);
var material=新的3.0网格LambertMaterial(
{
颜色:65535,
真的吗
});
对于(变量i=0;i<8;i++)
{
var顶点=[];
对于(var v=0;v
在鼠标上制作光线投射器,并检查与立方体或其面是否相交
onMouseDown(event) {
this.mouse.x = (event.pageX / window.innerWidth) * 2 - 1;
this.mouse.y = -(event.pageY / window.innerHeight) * 2 + 1;
this.raycaster.setFromCamera(this.mouse, this.camera);
let intersectCube = this.raycaster.intersectObjects( Cube , true );
}