Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于浏览器窗口大小的Three.js屏幕到世界位置计算_Javascript_Three.js - Fatal编程技术网

Javascript 基于浏览器窗口大小的Three.js屏幕到世界位置计算

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

我对在three.js中将屏幕位置转换为世界位置感到困惑。我已经看过了关于Stackoverflow的几个问题的答案,但无法理解这些公式和/或从示例中的光线投射或鼠标测试中提取它们(我都没有这样做)。我只想根据场景/窗口的宽度将平面定位在世界位置。例如,窗口右下角减去平面的宽度和高度,使其在屏幕上可见。大概是这样的:

//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?

请参见