在three.js中协调系统问题

时间:2018-05-01 12:17:05

标签: three.js

我正在研究three.js中的一个程序。所以我有一个从LAS文件加载的粒子系统。它有一个坐标系。我添加了一个功能,使用户可以点击一个粒子,它会为场景添加一个边界框。我的目标是找到哪个粒子位于这个边界框内。

在用户点击的点p处添加边界框的代码:

var cubeGeometry = new THREE.BoxGeometry( 1, 1, 1 );
var cubeMaterial = new THREE.MeshLambertMaterial( { color: 
   0xffff00,wireframe: true } );
var cube = new THREE.Mesh( cubeGeometry, cubeMaterial );
cube.position.x = p.x;
cube.position.y = p.y;
cube.position.z = p.z;
scene.add(cube);

但我面临一个问题。创建的框具有与粒子系统不同的坐标轴方向。它的Y轴朝向粒子系统的Z轴方向。这会导致containsPoint方法给出错误的答案。

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

试试这个:

var e = new THREE.Euler( - Math.PI / 2, 0, 0 );
p.applyEuler( e );

这将围绕x轴旋转90度或从Z向上旋转到Y向上。

相关问题