4. Osa a úhel — Rodriguesův vzorec
Eulerova věta o rotaci: každá orientace tělesa s pevným bodem se dá dostat jedinou rotací kolem jediné osy. Ať je orientace jakkoliv zamotaná, vždycky existuje osa k̂ a úhel θ, které ji vyrobí najednou.
Z osy a úhlu se matice postaví Rodriguesovým vzorcem:
R = I + sin θ · [k̂]× + (1 − cos θ) · [k̂]ײRodrigues
kde [k̂]× je antisymetrická matice vektorového součinu. Je to zkrácený zápis maticové exponenciály R = exp([k̂]×θ) — a přesně takhle je to v testech ověřené, sečtením té exponenciály jako Taylorovy řady, která s Rodriguesem nesdílí ani řádek kódu.
Zpátky z matice
θ = arccos( stopa R − 12 )
k̂ = 12 sin θ · ( R32−R23, R13−R31, R21−R12 )
Dvě místa, kde tohle selže, a obě jsou skutečná:
- θ = 0. Osa není definovaná — otočení o nic je kolem čehokoliv. Nástroj to hlásí, místo aby dělil nulou.
- θ = π. sin θ = 0 a antisymetrická část matice zmizí. Osa se musí získat z diagonály R + I. Naivní kód tady vrací NaN a je to překvapivě častá havárie, protože otočení o 180° není nic exotického.
Přesnost té arccos. Blízko identity platí arccos(1−ε) ≈ √(2ε),
takže se ztratí polovina platných číslic: dvě orientace shodné na strojovou přesnost vyjdou
jako vzdálené ~10⁻⁸ rad. Není to chyba, je to vlastnost toho měření — a proto mají testy
tolerance na úhlové porovnání volnější než na porovnání prvků matice.