Na pořadí záleží — a jak se otáčí kolem bodu
Skládání transformací je součin matic, takže platí všechno z kapitoly 2 MatrixLabu: čte se to zprava doleva a na pořadí záleží. Tady to ale bolí konkrétněji, protože je to vidět.
Posunout o 5 doprava a pak otočit o 90° kolem počátku znamená, že se ta pětka otočí spolu s objektem a skončí nahoře. Otočit a pak posunout znamená, že objekt skončí vpravo. Dva různé výsledky z týchž dvou operací.
Otočení kolem bodu: sendvič
Matice otočení umí jen kolem počátku (kapitola 2). Otočit kolem kloubu, který na počátku neleží, se dělá trikem, který stojí za zapamatování jako vzor:
- otočit domeček kolem P, ne kolem počátku
Matice otočení umí jenom kolem počátku. Chceme ale otáčet kolem bodu P — třeba kolem kloubu, který nesedí na počátku.
- T(−P) = posun o (−2,5, −0,5)
Když matice umí jen kolem počátku, přesuneme problém: celou scénu posuneme tak, aby P skončilo v počátku.
- R(70°)
Teď už je otočení kolem počátku přesně to, co chceme.
- T(+P) = posun o (2,5, 0,5)
Posuneme scénu zpátky. Domeček je otočený kolem P a nic jiného se nezměnilo.
- M = T(P) · R(θ) · T(−P)
Součin se čte zprava doleva — nejblíž bodu stojí to, co se stane první. Tenhle sendvič „přenes, udělej, vrať“ je nejužitečnější vzor v celé kapitole a objeví se znovu u změny báze.
Tenhle sendvič — přenes tam, kde to umíme, udělej to, vrať zpátky — se v matematice objevuje pořád. Ve stejném tvaru je to změna báze (kapitola 7), podobnostní transformace a taky způsob, jak se škáluje kolem jiného bodu než počátku nebo zrcadlí podle přímky, která počátkem neprochází.
Kdy na pořadí nezáleží. Dvě posunutí komutují vždycky. Dvě otočení v rovině taky. Otočení a stejnoměrná škála kolem téhož bodu taky. Všechno ostatní — a hlavně otočení s posunem — ne. V prostoru navíc přestanou komutovat i samotná otočení, což je jedna z věcí, kvůli kterým existuje RotLab.