2012-08-02 5 views
5

sto usando CSS3 per eseguire la seguente trasformazione su un div:CSS Trasformazione 3D Angolo di Emissione

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

Il risultato è simile:

enter image description here

o come in questo violino : http://jsfiddle.net/kteSW/

Come possiamo vedere qui, l'angolo è 36deg, invece di 30deg (sin45 * sin45). Qualcuno conosce il motivo di questo problema? Questo è inteso o è un errore CSS3?


UPDATE:

ho già impostato i parametri per essere:

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

Quindi tutto dovrebbe essere resa in modo ortogonale. Tuttavia, l'angolo non è ancora 30 gradi.

+3

I calcoli presuppongono un modello di rendering isometrico. CSS 3D utilizza [rendering 3D prospettico] (http://www.w3.org/TR/css3-3d-transforms/#transform-rendering). –

+0

Grazie Raymond. C'è un modo per abilitare il rendering isometrico di CSS 3D? Stiamo usando WebKit su iOS. –

+2

Le trasformazioni non sono transizioni, per favore non mescolare le due. Ho modificato i tag per te. – BoltClock

risposta

6

Quello che stiamo cercando di ottenere è calcolare l'angolo tra l'occhio e l'asse Z quando guardiamo a (0, 0, 0) da (1, 1, 1).

Quindi è in realtà (90 deg) - arctan(1/sqrt(2)) = 54.7356103 deg, non 45deg.