Javascript 使用Three.js和CSS3DRenderer获取div/图像的实际屏幕宽度(以像素为单位)

Javascript 使用Three.js和CSS3DRenderer获取div/图像的实际屏幕宽度(以像素为单位),javascript,css,3d,three.js,Javascript,Css,3d,Three.js,我一直在努力解决这个问题。 我有一个使用CSS3D渲染器Three.js的程序,我正在尝试以div(包含一幅图像)的像素为单位获得投影的“真实”屏幕宽度 我尝试在图像上使用getBoundingClientRect(),但该函数返回的宽度和高度是错误的。我认为这是因为一个观点问题 我也尝试过这种方法,它给了我一个精确的中心坐标,这是mrdoob的帖子: 不幸的是,我找到的所有获取对象顶部、左角或任何角的方法都使用CSS3DObject不使用的几何体对象(即获取角点的向量并投影这些向量ref:)

我一直在努力解决这个问题。 我有一个使用CSS3D渲染器Three.js的程序,我正在尝试以div(包含一幅图像)的像素为单位获得投影的“真实”屏幕宽度

我尝试在图像上使用getBoundingClientRect(),但该函数返回的宽度和高度是错误的。我认为这是因为一个观点问题

我也尝试过这种方法,它给了我一个精确的中心坐标,这是mrdoob的帖子:

不幸的是,我找到的所有获取对象顶部、左角或任何角的方法都使用CSS3DObject不使用的几何体对象(即获取角点的向量并投影这些向量ref:)

有人知道如何做到这一点吗?简而言之,我只想在Three.js CSS3D场景中获得div的真实屏幕大小(与img紧密配合)。最后,我想检测一下,相机变焦是否使图像的像素值大于其原始大小


谢谢

将此移到更具体的问题:-在您更具体的问题下添加了它,但由于它也回答了这个问题,我认为在这里也可以找到它。
var width = window.innerWidth, height = window.innerHeight;
var widthHalf = width / 2, heightHalf = height / 2;

var projector = new THREE.Projector();
var vector = projector.projectVector( object.matrixWorld.getPosition().clone(), this.camera );

vector.x = ( vector.x * widthHalf ) + widthHalf;
vector.y = -( vector.y * heightHalf ) + heightHalf;