2012-08-02 64 views
5

我使用CSS3执行上一个div以下转变:CSS 3D变换角度问题

'-webkit-transform' : 'rotateX(45deg) rotateZ(-45deg)'

的结果是这样的:

enter image description here

,或者由于本小提琴:http://jsfiddle.net/kteSW/

正如我们在这里看到的,角度是36deg,而不是30deg(sin45 * sin45)。 有谁知道这个问题的原因?这是打算或是一个CSS3的错误?


UPDATE:

我已经设定的参数为:

-webkit-transform-style: preserve-3d; -webkit-perspective: none;

所以一切都应该是呈现一个正交方式。但是,角度还不是30度。

+3

您的计算假设了一个等轴测渲染模型。 CSS 3D使用[透视3D渲染](http://www.w3.org/TR/css3-3d-transforms/#transform-rendering)。 – 2012-08-03 03:01:59

+0

谢谢雷蒙德。有没有办法启用CSS 3D的等距渲染?我们在iOS上使用WebKit。 – 2012-08-03 11:47:45

+2

转换不是转换 - 请不要混合它们两个。我为你编辑了标签。 – BoltClock 2012-08-04 17:23:44

回答

6

当我们从(1,1,1)看(0,0,0)时,我们试图实现的是计算眼睛和Z轴之间的角度。

所以它实际上是(90 deg) - arctan(1/sqrt(2)) = 54.7356103 deg而不是45deg