gpt4 book ai didi

three.js - 射线与平面的交点坐标

转载 作者:行者123 更新时间:2023-12-02 22:16:05 25 4
gpt4 key购买 nike

我有一条射线和一个平面。射线与平面相交,我想知道在哪里。如何获得该交点的世界坐标?

(我的特殊情况是,我将屏幕坐标取消投影到相机并创建光线。该平面是场景的地面)

var vector = new THREE.Vector3( mousePosition.x, mousePosition.y, 1 );
projector.unprojectVector( vector, camera );
var ray = new THREE.Ray(
camera.position,
vector.subSelf( camera.position ).normalize()
);

最佳答案

这是通常的模式。您可能需要对其进行调整以适应您的特定情况。

var raycaster = new THREE.Raycaster(); // create once and reuse
var mouse = new THREE.Vector2(); // create once and reuse

...

mouse.x = ( event.clientX / renderer.domElement.clientWidth ) * 2 - 1;
mouse.y = - ( event.clientY / renderer.domElement.clientHeight ) * 2 + 1;

raycaster.setFromCamera( mouse, camera );

var intersects = raycaster.intersectObjects( objects, recursiveFlag );

if ( intersects.length > 0 ) {

console.log( intersects[ 0 ].point; );

}

这里,objects 是一个数组。例如,

var objects = [];

objects.push( plane_mesh );

编辑:更新了 Three.js r.84

关于three.js - 射线与平面的交点坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12748677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com