2012-08-02 91 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