Arbitrary Plane Reflection
Arbitrary Plane Reflection
1. Choose a point p = (p1, p2, p3) on the plane. Translate this point to the
origin so that the reflection plane becomes ax + by + cz = 0. Denote r = (a, b, c).
2. Then following steps 2–3 of the method of general rotation in Section B
there are two angles θx and θy such that the composition of rotations
Roty(−θy) ◦ Rotx(θx) aligns the vector r with the z-axis, and maps the translated
reflection plane to the xy-plane. We have θx = 0 if r2 = r3 = 0; otherwise, sin θx
and cos θx are defined in (5) and (6), respectively.
Meanwhile, cos θy and sin θy are given by (7) and (8). 3. Apply the reflection in
the xy-plane. 9 4. Apply the inverse of the transformations in steps 1–2 in
reverse order. The general reflection matrix is thus Trans(p1, p2, p3) Rotx(−θx)
Roty(θy) Refxy Roty(−θy) Rotx(θx) Trans(−p1, −p2, −p3). (4) We can easily verify
the above reflection matrix in the special cases where the plane is parallel to
the yz-plane, xy-plane, or xz-plane. In the first case, the matrix (4) reduces to
Trans(p1, p2, p3) Refyz Trans(−p1, −p2, −p3). Example 6. Let us determine the
transformation matrix for a reflection in the plane 2x − y + 2z − 2 = 0.
Pick a point, say, (1, 0, 0), in the plane and translate it to the origin. The
translated plane is 2x− y + 2z = 0 which has a normal (2, −1, 2). Next, we
determine that sin θx = − 1 √ 5 , cos θx = 2 √ 5 , sin(−θy) = − sin θy = − 2 3 .
cos(−θy) = cos θy = √ 5 3 .
The reflection matrix (4) becomes 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1
1 0 0 0 0 √ 2 5 − √ 1 5 0 0 √ 1 5 √ 2 5 0 0 0 0 1
√ 5 3 0 2 3 0 0 1 0 0 − 2 3 0 √ 5 3 0 0 0 0 1 1 0
0 0 0 1 0 0 0 0 −1 0 0 0 0 1 √ 5 3 0 − 2 3 0 0 1 0 0 2 3 0 √
5 3 0 0 0 0 1 1 0 0 0 0 √ 2 5 √ 1 5 0 0 − √ 1 5 √ 2 5 0 0 0
0 1 1 0 0 −1 0 1 0 0 0 0 1 0 0 0 0 1 = 1 9
1 4 −8 8 4 7 4 −4 −8 4 1 8 0 0 0 9
We can simply remove the multiplier 1 9 in front of the matrix above since
homogeneous coordinates are used. B Rotation about an Arbitrary Line When
the rotation axis is an arbitrary line, we obtain the transformation matrix as
follows. Firstly, transform the rotation axis to one of the coordinate axes.
Secondly, perform a rotation of the required angle θ about the coordinate axis.
Finally, transform the coordinate axis back to the original rotation axis. More
specifically, let the rotation axis be the line ℓ through the points p = (p1, p2,
p3) and q = (q1, q2, q3). Denote r = q − p = (r1, r2, r3). Then we perform the
following steps:
1. Translate the point p by (−p1, −p2, −p3) to the origin O and the rotation axis
to the line Or through O and the point r.
2. Rotate the vector r about the x-axis until it lies in the xz-plane. This is shown
in Figure 5(a).
Suppose that the line Or makes an angle θx with the xz-plane. If r2 = r3 = 0,
then the line z r2 r3 θx y x q O r z r r ′ r1 −θy y x x z −θy r ′ θ y p θy θx r1
(a) (b) (c) Figure 5: Rotation about an arbitrary axis performed by transforming
the axis to the z-axis, applying the rotation, and transforming back to the
original axis.