# 3D Fundamentals Tutorial 3

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

In this video we start from the canonical 2D rotation transformation matrix and extend it to 3D to derive rotation around the Z, Y, and X-axes. We also jerk off said axes, using the left-hand rule of course (right hand is busy with the mouse).

## 2D Rotation

For an in-depth explanation / derivation of the formula for 2D rotation, check out this video. There is also another video in the same series that deals with encoding transformations in matrices, and it can be found here.

## Video

The tutorial video is on YouTube here.

• How does sight (the Retina) work? How do we see 3D? 0:26
• The retina is basically a 2D image sensor array
• It projects 3D space onto a 2D interpretation
• There are numerous cues to allow us to perceive 3D. One is rotating an image along various axes
• Applying 3D rotation to our cube 1:46
• Deriving the three 3D rotation matrices (around the x,y,z axes) 5:16
• Implementing rotation matrices in the `Mat3` class 8:25
• How to rotate around any orientation? Concatenate the matrices 14:17
• Switching between multiple 3D interpretations by your brain 16:18
• The order of concatenation in 3D rotation matters 17:29
• The transformation is not commutative and different orders result in different orientations
• Just pick one order and stich with it. As long as you're consistent, there is no problem
• Direction of rotation: the left hand rule again 19:49
• Wrapping angles in a [-pi,+pi) range 21:09
• Angle data in radians are periodic (period = 2*pi)
• It's good practice to keep angle data in one fixed range (width 2*pi) as floating point data loses precision if they grow large