Rotate With Dots
Recall that rotating point \(\mathbf{p}\) by \(a\) radians around the z-axis produces point \(\mathbf{p'}\) with the following components:
As with scaling, let's rewrite the equations for rotation to use dot products, with the second vector again being \(\mathbf{p}\):
The first two components of \(\mathbf{a}\) are plucked right from the scalar definition of \(p'_x\). There's no mention of \(p_z\) in that equation, so it must be zeroed out. Vector \(\mathbf{b}\) is derived similarly. That give us these two dot products:
The scalar definition of \(p'_z\) does not look like a dot product; there is no multiplication and no summing. Nonetheless, it can be written as a dot product. The x- and y-components are zeroed out, and \(p_z\) stays the same, which means its coefficient in the first vector must be 1:
Altogether, a rotation around the z-axis has this dot product form:
Two transformations down, one to go. All the remains is translation, which surely can be expressed as dot products. Right?