Login
derivation of 2D reflection matrix
Reflection across a line of given angle
Let $\vx, \vy$ be perpendicular unit vectors in the plane. Suppose we want to reflect vectors (perpendicularly) over a line that makes an angle $\theta$ with the positive $\vx$ axis. More precisely, we are given a direction direction vector $\vu = \cos \theta \, \vx + \sin \theta \, \vy$ for the line of reflection. A unit vector perpendicular to $\vu$ is $\vv = -\sin \theta \, \vx + \cos \theta \, \vy$ (as is easily checked). Then to reflect an arbitrary vector $\vw$ , we write $\vw$ in terms of its components in the $\vu, \vv$ axes: $\vw = a\vu + b \vv$ , and the result of the reflection is to be $\vw' = a\vu - b \vv$ .
We compute the matrix for such a reflection in the original $x,y$ coordinates.
Denote the reflection by $T$ . By the matrix change-of-coordinates formula, we have
where $[T]_{xy}$ and $[T]_{uv}$ denote the matrix representing $T$ with respect to the $x,y$ and $u,v$ coordinates respectively; $[I]_{uv}^{xy}$ is the matrix that changes from $u,v$ coordinates to $x,y$ coordinates, and $[I]_{xy}^{uv}$ is the matrix that changes coordinates the other way.
The three matrices on the right-hand side are all easily derived from the description we gave for the reflection $T$ :
![]() |
Computing the matrix product (with the help of the double angle identity) yields:
For the information of the reader, we note that there are other ways of ``deriving'' this result. One is by the use of a diagram, which would show that $(1,0)$ gets reflected to $(\cos 2\theta, \sin 2\theta)$ and $(0,1)$ gets reflected to $(\sin 2\theta, -\cos 2\theta)$ . Another way is to observe that we can rotate an arbitrary mirror line onto the x-axis, then reflect across the x-axis, and rotate back. (The matrix product $[T]_{xy}$ can be seen as operating this way.) We took neither of these two approaches, because to justify them rigorously takes a bit of work, that is avoided by the pure linear algebra approach.
Note also that $[T]_{uv}$ and $[T]_{xy}$ are orthogonal matrices, with determinant $-1$ , as expected.
Reflection across a line of given direction vector
Suppose instead of being given an angle $\theta$ , we are given the unit direction vector $u$ to reflect the vector $w$ . We can derive the matrix for the reflection directly, without involving any trigonometric functions.In the decomposition $\vw = a \vu + b\vv$ , we note that $b = \vw \cdot \vv$ . Therefore$$ \vw' = (a\vu + b\vv) - 2b\vv = \vw - 2(\vw \cdot \vv) \vv\,.$$ (In fact, this is the formula used in the source code to draw the diagram in this entry.) To derive the matrix with respect to $x,y$ coordinates, we resort to a trick:$$ \vw' = I\vw - 2\vv (\vw \cdot \vv) = I\vw - 2\vv (\transpose{\vv} \vw) = I\vw - 2(\vv \transpose{\vv}) \vw\,.$$ Therefore the matrix of the transformation is$$ I - 2\vv \transpose{\vv} = \begin{bmatrix} u_x^2 - u_y^2 & 2u_x u_y \\ 2u_x u_y & u_y^2 - u_x^2 \end{bmatrix}\,, \quad \vu = \transpose{(u_x, u_y)}\,, \quad \vv = \transpose{(-u_y, u_x)}\,.$$ If $u$ was not a unit vector to begin with, it of course suffices to divide by its magnitude before proceeding. Taking this into account, we obtain the following matrix for a reflection about a line with direction $\vu$ :
Notice that if we put $u_x = \cos \theta$ and $u_y = \sin \theta$ in matrix (
Reflection across a line of given slope
There is another form for the matrix (1). We set $m = \tan \theta$ to be the slope of the line of reflection and use the identities:![]() |
||
When these equations are substituted in matrix (1), we obtain an alternate expression for it in terms of $m$ only:
Thus we have derived the matrix for a reflection about a line of slope $m$ .
Alternatively, we could have also substituted $u_x = 1$ and $u_y = m$ in matrix (
) to arrive at the same result.
Topology of reflection matrices
Of course, formula (What is this topology? It is the one-dimensional projective plane $\RPone$ , or simply, the ``real projective line''. It is formed by taking the circle, and identifying opposite points, so that each pair of opposite points specify a unique mirror line of reflection in $\real^2$ . Formula (1) is a parameterization of $\RPone$ . Note that (1) involves the quantity $2\theta$ , not $\theta$ , because for a point $(\cos \theta, \sin \theta)$ on the circle, its opposite point $(\cos (\theta+\pi), \sin (\theta+\pi))$ specify the same reflection, so formula (1) has to be invariant when $\theta$ is replaced by $\theta + \pi$ .
But (1) might as well be written
where $\phi = 2\theta$ . For this parameterization of $RP^1$ to be one-to-one, $\phi$ can range over interval $(0, 2\pi)$ , and the endpoints at $\phi = 0, 2\pi$ overlap just as for a circle, without identifying pairs of opposite points. What does this mean? It is the fact that $\RPone$ is homeomorphic to the circle $S^1$ .
The real projective line $\RPone$ is also the one-point compactification of $\real$ (i.e. $\RPone = \real \cup \{ \infty \}$ ), as shown by formula (
); the number $m = \infty$ corresponds to a reflection across the vertical axis. Note that this ``$\infty$ '' is not the same as the usual $\pm \infty$ , because here $-\infty$ and $\infty$ are actually the same number, both representing the slope of a vertical line.

![$\displaystyle [I]_{uv}^{xy} = \begin{bmatrix}\cos \theta & -\sin \theta \\ \sin... ...matrix}\cos \theta & \sin \theta \\ -\sin \theta & \cos \theta \end{bmatrix}\,.$](http://images.planetmath.org/cache/objects/7262/js/img3.png)
![$\displaystyle [T]_{xy} = \begin{bmatrix}\cos 2\theta & \sin 2\theta \\ \sin 2\theta & -\cos 2\theta \end{bmatrix}\,.$](http://images.planetmath.org/cache/objects/7262/js/img4.png)



![$\displaystyle [T]_{xy} = \begin{bmatrix}\cos \phi & \sin \phi \\ \sin \phi & -\cos \phi \end{bmatrix}\,.$](http://images.planetmath.org/cache/objects/7262/js/img13.png)