Strona główna Geometria Obrót kwaternionowy

🔄 Obrót kwaternionowy

Interaktywne porównanie kątów Eulera i obrotu kwaternionowego obok siebie. Zobacz blokadę przegubu (gimbal lock), płynną interpolację SLERP i porównaj metody orientacji 3D na siatkowych sześcianach Canvas 2D.

Geometria2DŚredni60 FPS
quaternions ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

🔄 Co przedstawia symulacja

Kąty Eulera (odchylenie, pochylenie, przechylenie) są intuicyjne, ale cierpią na blokadę przegubu (gimbal lock): gdy dwie osie obrotu się pokrywają (np. pochylenie = ±90°), traci się jeden stopień swobody i obroty stają się nieprzewidywalne. Kwaterniony — liczby czterowymiarowe q = w + xi + yj + zk odkryte przez Hamiltona w 1843 roku — reprezentują obroty bez osobliwości. SLERP (sferyczna interpolacja liniowa) płynnie interpoluje pomiędzy dwiema orientacjami kwaternionowymi wzdłuż najkrótszego łuku na 4-wymiarowej hipersferze, dając ruch o stałej prędkości kątowej, bez szarpnięć.

Jak korzystać

  • Dostosuj suwaki Odchylenie / Pochylenie / Przechylenie, aby ustawić docelową orientację.
  • Włącz Wymuś blokadę przegubu, aby ustawić pochylenie na 90° i zaobserwować, jak strona Eulera traci oś obrotu.
  • Przełącz Interpolację SLERP, aby zobaczyć płynne zachowanie w porównaniu ze skokowym po stronie kwaternionowej.
  • Auto-obrót stosuje ciągły obrót, aby można było porównać ścieżki.
  • Lewy sześcian używa sekwencyjnych macierzy obrotu Eulera; prawy używa równoważnego kwaternionu jednostkowego.

Czy wiesz, że...?

William Rowan Hamilton wyrył reguły mnożenia kwaternionów (i² = j² = k² = ijk = −1) na moście Brougham Bridge w Dublinie 16 października 1843 roku. Kwaterniony są dziś niezbędne w lotnictwie i kosmonautyce (systemy sterowania orientacją statków kosmicznych), robotyce oraz w każdym silniku gier 3D — Unity, Unreal i Godot domyślnie wewnętrznie używają obrotów kwaternionowych. Komputer nawigacyjny Apollo wykorzystywał jednostkę pomiaru inercyjnego opartą na przegubach; w pobliżu blokady przegubu astronauci musieli reorientować statek, aby nie stracić nawigacji.

O tej symulacji

Ten wizualizator umieszcza obok siebie dwa identyczne sześciany: lewy jest obracany za pomocą kątów Eulera (odchylenie, pochylenie i przechylenie stosowane jako sekwencyjne macierze obrotu), a prawy jest sterowany kwaternionem jednostkowym q = w + xi + yj + zk. Podczas zmiany orientacji strona kwaternionowa płynnie zmierza do celu za pomocą SLERP — sferycznej interpolacji liniowej wzdłuż najkrótszego łuku 4D — pozwalając zaobserwować, jak kwaterniony unikają osobliwości nękających kąty Eulera.

🔬 Co pokazuje

Dwa siatkowe sześciany Canvas 2D renderowane z prostą projekcją perspektywiczną i sortowaniem ścian algorytmem malarza. Sześcian Eulera budowany jest z macierzy odchylenie-pochylenie-przechylenie; sześcian kwaternionowy konwertuje równoważny kwaternion jednostkowy na macierz obrotu 3x3. Wymuszenie pochylenia na 90 stopni zapada sześcian Eulera w blokadę przegubu, podczas gdy strona kwaternionowa zachowuje pełną niezależność wszystkich trzech osi.

🎮 Jak korzystać

Przeciągnij suwaki Odchylenie, Pochylenie i Przechylenie (każdy od -180 do 180 stopni), aby ustawić docelową orientację. Suwak Prędkość auto-obrotu (0-30) obraca odchylenie i przechylenie w sposób ciągły. Zaznacz "Wymuś blokadę przegubu", aby przypiąć pochylenie na 90 stopni, przełącz "Interpolację SLERP", aby porównać płynne przejście z natychmiastowym skokiem, i skorzystaj z "Pokaż osie", Pauzy i Resetu. Panel na żywo w, x, y, z pokazuje bieżący kwaternion.

💡 Czy wiesz, że...?

William Rowan Hamilton wymyślił kwaterniony w przebłysku olśnienia 16 października 1843 roku i wyrył regułę i do kwadratu = j do kwadratu = k do kwadratu = ijk = minus jeden na dublińskim moście Brougham Bridge. Dziś każdy większy silnik 3D — Unity, Unreal i Godot — przechowuje obroty wewnętrznie jako kwaterniony.

Najczęściej zadawane pytania

Czym jest kwaternion i dlaczego używa się go do obrotów?

Kwaternion to liczba czteroelementowa q = w + xi + yj + zk, która koduje obrót 3D jako punkt na 4-wymiarowej hipersferze jednostkowej. Kwaternion jednostkowy reprezentuje dowolną orientację bez osobliwości ani niejednoznaczności kątów Eulera, dlatego jest standardem w grafice, robotyce i sterowaniu orientacją w lotnictwie i kosmonautyce.

Czym jest blokada przegubu (gimbal lock) i jak pokazuje ją ta symulacja?

Blokada przegubu pojawia się, gdy dwie z trzech osi obrotu Eulera pokrywają się, przez co tracony jest jeden stopień swobody. Zaznaczenie "Wymuś blokadę przegubu" ustawia pochylenie na 90 stopni: na lewym sześcianie odchylenie i przechylenie zaczynają wtedy obracać się wokół tej samej osi wizualnej, podczas gdy prawy sześcian kwaternionowy zachowuje pełną niezależność wszystkich trzech osi.

Co dokładnie robi pole wyboru SLERP?

SLERP, czyli sferyczna interpolacja liniowa, łączy bieżący i docelowy kwaternion wzdłuż najkrótszego łuku wielkiego koła na hipersferze przy stałej prędkości kątowej. Po zaznaczeniu sześcian kwaternionowy płynnie zmierza do nowych orientacji; po odznaczeniu skokowo przeskakuje do celu w każdej klatce, dzięki czemu można poczuć różnicę.

Czy symulacja jest fizycznie i matematycznie dokładna?

Tak. Wykorzystuje standardową konwersję odchylenie-pochylenie-przechylenie na kwaternion, normalizuje wynik do kwaternionu jednostkowego i konwertuje z powrotem za pomocą kanonicznego wzoru kwaternion-na-macierz. Procedura SLERP zawiera typowe odwrócenie znaku dla najkrótszej ścieżki oraz liniowe przybliżenie, gdy dwa kwaterniony są niemal równoległe, zgodnie z podręcznikowymi implementacjami.

Skoro kwaterniony są lepsze, dlaczego wciąż używa się kątów Eulera?

Kąty Eulera są intuicyjne, ponieważ odchylenie, pochylenie i przechylenie odpowiadają bezpośrednio codziennym pojęciom takim jak kierunek i nachylenie, co czyni je idealnymi do wprowadzania danych przez użytkownika i wyświetlania. Kompromisem jest blokada przegubu i niewygodna interpolacja, dlatego wiele systemów przyjmuje dane wejściowe w postaci kątów Eulera, ale wewnętrznie konwertuje je na kwaterniony do właściwych obliczeń obrotu.

Podobne symulacje