“简单”的问题我无法找到答案 - -webkit-perspective
实际上在数学上做了什么? (我知道它的效果,它基本上就像一个焦距控制),例如-webkit-perspective: 500
是什么意思?!?
我需要找到被移动的内容的屏幕位置,其中包括-webkit-perspective
答案 0 :(得分:7)
The CSS 3D Transforms Module工作草案给出了以下解释:
<强>透视(小于数&GT)强>
指定透视投影矩阵。该矩阵将观察立方体映射到金字塔上,金字塔的底部距离金字塔无限远 观众及其峰值代表观众的位置。可见 area是由视口的四个边界限定的区域( 用于在其间呈现网页的浏览器窗口的一部分 观察者的位置和距离无穷远的点 观众)。作为函数的参数给出的深度表示 z = 0平面距观察者的距离。较低的值给出了 更扁平的金字塔,因此更明显的视角 影响。该值以像素为单位,因此值1000表示a 适量的透视和200的价值给了极端 量。通过以单位矩阵开始计算矩阵 用值-1 / depth替换第3行第4列的值。该 深度值必须大于零,否则函数为 无效。
如果不是完全清楚的话,这是一个开始。第一句让我相信维基百科上的the perspective projection matrix article可能会有一些帮助,尽管在这篇文章的评论中发现CSS工作组的惯例与维基百科中的约定可能会略有不同,所以请检查那些是为了让自己头疼。
答案 1 :(得分:2)
查看http://en.wikipedia.org/wiki/Perspective_projection#Diagram
在阅读了之前的评论并做了一些研究和测试后,我非常确定这是正确的。
请注意,对于Y坐标也是如此。
转换X =原始X *(透视/(透视 - Z翻译))
例如。 Div宽500px 透视是10000px Z方向的变换为-5000px
转换宽度= 500 *(10000 /(10000 - ( - 5000)) 变换宽度= 500 *(10000/15000)= 500 *(2/3)= 333px
答案 2 :(得分:0)
@Domenic奇怪的是,描述“矩阵是通过以单位矩阵开始并将第3行第4列的值替换为值-1 /深度来计算的。”已经从The CSS 3D Transforms Module工作草案中删除了。也许这种描述可能存在一些不准确之处。
好吧,关于透视(&lt; number&gt;)中的数字是什么意思,我认为可以看作是想象相机的位置与电脑屏幕之间的距离