Utworzyłem to: , aby lepiej zrozumieć pytanie. Jak widać przy użyciu CSS3 możemy obrócić element wokół osi X, Y lub Z, używając transform: rotate[XYZ](M deg/rad)
.Jak obrócić element wokół linii innej niż X = 0, Y = 0 i Z = 0 używając CSS3?
Ale szukam funkcji obracania elementu na dowolnej linii. Na przykład obracanie elementu na linii x=y
. lub jeszcze bardziej złożony y=2x+3
.
Jeśli nie rozumiesz tego, trzymaj papier w ręku i odwróć go z dwóch najdalszych rogów (dla y=x
lub y=-x
). lub spójrz na to zdjęcie.
Zgaduję byłoby połączenie dwóch obrotów, ale nie wiem, jak obliczyć obroty.
Aktualizacja:
Nie wiedziałem, że jest rotate3d
funkcja CSS transform
. ta funkcja przyjmuje cztery argumenty: rx
, , rz
i deg
. Uważam, że byłby bardzo pomocny w tym problemie.
Co innego, gdy zmieniamy translate[X,Y,Z]
tak naprawdę zmieniając początek rotacji. To znaczy, że jeśli chce się obracać wokół Y=10px
należy zmienić translateZ
do 10px
Update2:
mojego aktualnego celem jest stworzenie narzędzia do zastosowania CSS przekształcić nieruchomość przy użyciu GUI. jak widać w moim pliku jsbin. Chcę go rozszerzyć na wszystko, co tylko możesz zrobić transform
. Jednym z nich jest rotacja. Jestem pewien, że można obrócić element wokół innych linii niż x=0
... ale nie wiem, jak wykonać obliczenia. Na przykład obrót o 45 ° wokół Y
i 45 ° wokół Z
jest taki sam jak obrót o 45 ° wokół x=y
. Potrzebuję rozwiązania dla wszystkich linii w przestrzeni.
Czy próbujesz utworzyć model M-teorii z javascript? :) – bfavaretto
Dowolna linia w przestrzeni 3D może być osią obrotu. Po prostu myśl o linii x = y. Proszę ponownie otworzyć moje pytanie. Dodam więcej szczegółów – Mohsen
Nie jesteśmy w przestrzeni 3D. Dokumenty HTML mają charakter 2D, więc wszystko, co można obracać, jest punktem. [Transformacje 3D] (http://www.webkit.org/blog/386/3d-transforms/) to zupełnie inna sprawa ... – bobince