TransformLab posunout, otočit, složit

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

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.

„posuň o 5, pak otoč o 90°"  ≠  „otoč o 90°, pak posuň o 5"a rozdíl je pět jednotek

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:

xyPM = T(P)·R(θ)·T(−P)0,34−0,942,110,940,34−2,020,000,001,00M =P se nehnulo:(2,500, 0,500)
  1. 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.

  2. 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.

  3. R(70°)

    Teď už je otočení kolem počátku přesně to, co chceme.

  4. 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.

  5. 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.

Čtyři kroky a jeden vzor: přenes, udělej, vrať. Poslední krok ověří, že se pivot opravdu nehnul — na tři desetinná místa.
M = T(P) · R(θ) · T(−P)otočení kolem bodu P

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.

Vzorce v této kapitole

M — otočení kolem bodu P
M = T(P)·R(θ)·T(−P) [—] kap. 3