如果鼠标位于多维数据集/球体几何体上,或者位于地面上(使用GridHelper),我必须能够找到鼠标位置
我正在尝试在用户鼠标所在的位置制作形状,我拥有制作形状所需的所有代码,但是在正确设置位置时遇到了困难
这是给我最好结果的代码
var vec = new THREE.Vector3(); // create once and reuse
var pos = new THREE.Vector3(); // create once and reuse
vec.set(
( container.offsetWidth / window.innerWidth ) * 2 - 1,
- ( container.offsetHeight / window.innerHeight ) * 2 + 1,
0.5
);
vec.unproject( camera );
vec.sub( camera.position ).normalize();
var distance = - camera.position.z / vec.z;
pos.copy( camera.position ).add( vec.multiplyScalar( distance ) );
尽管这似乎与相机的位置有关,即使如此,它也不是相机的确切位置,我也尝试过重用其他代码,例如the interactive cubes example that uses a Raycaster from three js,但这似乎也是何时可以检测到相交点随机排列。
如果用户将鼠标放在网格上会发生什么,我应该得到坐标(即2.4,-5、0,当然比这要精确得多),并说用户将鼠标放在形状上,鼠标在场景中的位置(触摸形状)(即2.4,-5、3)