【发布时间】:2013-07-31 18:33:13
【问题描述】:
我看过很多帖子,人们希望将相机位置设置为屏幕位置。我的问题是如何反其道而行之。
我目前想要实现的是将“门”位置设置为屏幕的 %,此计算已准备好,并且我确实有最终的屏幕 X、Y (px) 位置。相机的当前 Z 偏移 = 250。
我找到了将相机位置转换为屏幕位置的代码:
var vector = projector.projectVector(door.position.clone(), camera);
vector.x = (vector.x + 1) / 2 * window.innerWidth;
vector.y = -(vector.y - 1) / 2 * window.innerHeight;
为了做反转,我尝试了这个,但没有给出我期望的结果:
var mouseX = ((perc.x) / window.innerWidth) * 2 - 1,
mouseY = -((perc.y) / window.innerHeight) * 2 + 1;
var vector = new THREE.Vector3(mouseX, mouseY, 1);
projector.unprojectVector(vector, camera);
return vector.sub(camera.position).normalize()
我已经尝试了几种方法并尝试了谷歌,但没有找到答案。
问:如何将屏幕位置转换为相机位置?
【问题讨论】:
标签: javascript three.js