Javascript 远距离变换元素的宽度/高度(像素)

Javascript 远距离变换元素的宽度/高度(像素),javascript,css,transform,pixel,impress.js,Javascript,Css,Transform,Pixel,Impress.js,我目前正在为web开发一个界面,它使用3D变换作为缩放方法。缩放是通过一个名为API的API完成的,该API通过3D变换将相机移近或移远 问题 我需要为一堆div创建一个正方形覆盖,因为它们可能很远,我需要计算它们在屏幕上实际占据的像素数量。我想既然我可以从div中得到相机当前的像素数,我就应该能够确定远处元素的明显像素大小 我试着用角度大小来估计它,看着它。但是,当您移动得太近、太远或对象太薄或太宽时,它不起作用 代码 我目前所做的事情如下所示: var div = $("#targe

我目前正在为web开发一个界面,它使用3D变换作为缩放方法。缩放是通过一个名为API的API完成的,该API通过3D变换将相机移近或移远

问题

我需要为一堆div创建一个正方形覆盖,因为它们可能很远,我需要计算它们在屏幕上实际占据的像素数量。我想既然我可以从div中得到相机当前的像素数,我就应该能够确定远处元素的明显像素大小

我试着用角度大小来估计它,看着它。但是,当您移动得太近、太远或对象太薄或太宽时,它不起作用

代码

我目前所做的事情如下所示:

    var div = $("#target"),
        camera = $("#camera"),

        angularSize = camera.z < 0 ? Math.tan(div.offsetWidth / camera.z) : 1;

    return {
             width: div.offsetWidth * angularSize,
             height: div.offsetHeight * angularSize,
           }
var div=$(“#目标”),
摄像头=$(“#摄像头”),
角度大小=摄像机。z<0?数学谭(等距/摄像机z):1;
返回{
宽度:div.offsetWidth*角度大小,
高度:div.offsetHeight*angularSize,
}
但它只适用于某些元素,而且也不完美

我所拥有的:

  • 每个元件的实际宽度/高度
  • 从中查看元素的Z索引中的像素量
我需要什么

  • 远处的元素在我的屏幕上实际占据的像素量

如果有人知道我如何计算这个,我希望得到一些帮助

没关系,我意识到我把事情复杂化了,可以只使用相机的正常视距和当前位置

相机在任何移动之前的透视是1000像素,我可以随时获得相机当前的z位置,所以我这样做:

    sizeScale = 1000 / camera.z;
    return {
               width: element.offsetWidth * sizeScale,
               height: element.offsetHeight * sizeScale,
           }