Ho creato questo page per una migliore comprensione della domanda. Come puoi vedere usando CSS3 possiamo ruotare un elemento attorno all'asse X, Y o Z usando transform: rotate[XYZ](M deg/rad)
.Come ruotare un elemento attorno a una linea diversa da X = 0, Y = 0 e Z = 0 usando CSS3?
Ma sto cercando una funzione per ruotare l'elemento su una determinata linea. Ad esempio, ruotando l'elemento sulla linea x=y
. o ancora più complesso y=2x+3
.
Se non lo capisci, tieni per favore un foglio in mano e giralo dai due angoli opposti (per y=x
o y=-x
). o guarda questa immagine.
Sto indovinando che sarebbe combinazione di due rotazioni, ma non so come calcolare le rotazioni.
Aggiornamento:
non sapevo c'è una funzione rotate3d
per i CSS transform
. questa funzione accetta quattro argomenti rx
, ry
, rz
e deg
. Ritengo che sarebbe molto utile per questo problema.
Un'altra cosa è quando si modifica translate[X,Y,Z]
in realtà cambia l'origine della rotazione. Ciò significa che se si desidera ruotare intorno Y=10px
si dovrebbe cambiare il translateZ
a 10px
Update2:
Il mio vero obiettivo è la creazione di uno strumento per applicare i CSS trasformare proprietà utilizzando una GUI. come puoi vedere nel mio file jsbin. Voglio estenderlo a qualsiasi cosa tu possa fare transform
possibile. Uno di questi è la rotazione. Sono sicuro che è possibile ruotare un elemento attorno ad altre linee rispetto a x=0
... ma non so come posso fare il calcolo. Ad esempio, la rotazione di 45 gradi intorno a Y
e 45 gradi intorno a Z
equivale a una rotazione di 45 gradi intorno a x=y
. Ho bisogno di una soluzione per tutte le linee nello spazio.
Stai cercando di creare un modello di teoria M con javascript? :) – bfavaretto
Qualsiasi linea nello spazio 3D può essere un asse per la rotazione. Pensa x = y line. Per favore riapri la mia domanda Aggiungerò ulteriori dettagli – Mohsen
Non siamo nello spazio 3D. I documenti HTML sono di natura 2D, quindi tutto ciò che puoi ruotare è un punto. [Trasformazioni 3D] (http://www.webkit.org/blog/386/3d-transforms/) sono una cosa completamente diversa ... – bobince