Javascript 基于浏览器窗口大小的Three.js屏幕到世界位置计算
我对在three.js中将屏幕位置转换为世界位置感到困惑。我已经看过了关于Stackoverflow的几个问题的答案,但无法理解这些公式和/或从示例中的光线投射或鼠标测试中提取它们(我都没有这样做)。我只想根据场景/窗口的宽度将平面定位在世界位置。例如,窗口右下角减去平面的宽度和高度,使其在屏幕上可见。大概是这样的:Javascript 基于浏览器窗口大小的Three.js屏幕到世界位置计算,javascript,three.js,Javascript,Three.js,我对在three.js中将屏幕位置转换为世界位置感到困惑。我已经看过了关于Stackoverflow的几个问题的答案,但无法理解这些公式和/或从示例中的光线投射或鼠标测试中提取它们(我都没有这样做)。我只想根据场景/窗口的宽度将平面定位在世界位置。例如,窗口右下角减去平面的宽度和高度,使其在屏幕上可见。大概是这样的: //geometry and material of the plane var geometry = new THREE.PlaneGeometry(50, 50); var m
//geometry and material of the plane
var geometry = new THREE.PlaneGeometry(50, 50);
var material = new THREE.MeshPhongMaterial( { color: 0xff0000 } );
//create plane
plane = new THREE.Mesh( geometry, material);
position = new THREE.Vector3();
position.x = ( window.innerWidth / 2 ) - asquare.geometry.parameters.width;
position.y = - ( window.innerHeight / 2 ) - asquare.geometry.parameters.height;
position.z = 0;
plane.position.set( position.x, position.y, position.z );
这是在正确的方向,但太远了,我想这是相机和平面z位置之间的差异的问题。如果我的相机位于z 500,而平面位于z 0,如何相应地调整x和y?请参见