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