[Script Info]
Title:
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.29,0:00:04.39,Default,,0000,0000,0000,,The answer is to translate, rotate, and then use the inverse translation. The
Dialogue: 0,0:00:04.39,0:00:08.50,Default,,0000,0000,0000,,translation moves the model to the origin, where it's now centered. The r matrix
Dialogue: 0,0:00:08.50,0:00:12.33,Default,,0000,0000,0000,,rotates the model on its base. Finally, the inverse of the translation moves it
Dialogue: 0,0:00:12.33,0:00:16.22,Default,,0000,0000,0000,,back to where it was. The key idea here is that the object is first being moved
Dialogue: 0,0:00:16.22,0:00:20.23,Default,,0000,0000,0000,,to the origin. Once that's done, we can rotate around its axis with the r
Dialogue: 0,0:00:20.23,0:00:23.78,Default,,0000,0000,0000,,matrix. At this point, forget about that there's even a rotation matrix. The
Dialogue: 0,0:00:23.78,0:00:27.71,Default,,0000,0000,0000,,model's locations are now rotated. Once that's done, we can move it back to the
Dialogue: 0,0:00:27.71,0:00:30.66,Default,,0000,0000,0000,,same position as before, with the inverse of the translation.