<p>This is the same problem as the rotation about an axis. What you need is a matrix (any matrix) that satisfies the following corner constraint: one axis must point toward $(-2, 2, 0)$ in the case of a rotation this matrix must be a rotation matrix, in the case of a planar mirror it just has to span the 3D space. But since we know how to make an arbitrary rotation matrix we use the same approach.</p>

<ol>
<li>Pick any vector (u) that's not parallel to the normal (n)</li>
<li>Take cross product of u and n for b</li>
<li>Take cross product of n and b for a</li>
</ol>

<p>You now have an arbitrary rotation matrix with one axis defined using vectors n, b and a. Otherwise same as <a href="https://computergraphics.stackexchange.com/questions/3911/transformation-matrices">the last question</a>.</p>

CC BY-SA 3.0
2016-08-28T21:44:06.077Z
Can you please give a full technical answer with the vectors exact calculations and normalizations? I'm finding it difficult to follow the logic. 1. Why is it the same as rotation about an axis? With rotation around axis, you HAVE to use the axis as one of the 3 orthonormal basis you create (here you don't use the normal N).
2. Why do you take a "vector thats not parallel to normal" and not the normal?
Jjang
CC BY-SA 3.0
2016-08-28T21:46:30.633Z
I'd expect something like: $w=\dfrac{n}{|n|}$, $v=\dfrac{n\times (0,0,1)^T}{|n\times (0,0,1)^T|}$, $u=v\times w$
Jjang
CC BY-SA 3.0
2016-08-29T05:15:19.470Z
@jiang you need to stop thinking in formulas and drawing the vectors. Once you do it gets easier to understand the only reason you do not understand is because you look at the formulas. Ys there was a paste error in the procedure.
joojaa
CC BY-SA 3.0
2016-08-29T05:30:53.837Z
But note you do not have to orthonormalize the matrix, you do not have to normalize the vectors, you could use the sizing in the reflection vectors. You dont need the vectors to be calculated this way. Your secodary directions could easily be  n+(0,1,0) and n+(0,0,1) but its just easier if you have a rotation matrix. But as i said draw the matrix vector on a piece of paper or screen @jiang then you will never need to remember the formulas as it becomes evident once you draw enough images.
joojaa
CC BY-SA 3.0
2016-08-28T21:10:22.533Z
2016-08-29T13:58:39.427Z
2017-04-13T13:00:43.660Z
joojaa
<p>I need to find the transformation matrix
(homogeneous coordinates) that flips an
object about a plane whose normal is
directed towards (-2 2 0), and intersects the
y-axis at y=2.</p>

<p>I know how to do that when I have 3 points on the plane (A,B,C): translate to origin, find the orthonormal basis of the plane (u,v,w axes) and then rotate the plane to match XYZ coordinate system (with the axes I found), perform the reflection, rotate back and translate back.</p>

<p>However in this case I have a normal and another data which I don't know how to use.</p>

<p>Any ideas?</p>

<3d><transformations>
Transformations about a Plane
Jjang
# Transformations about a Plane

(Asked by: username_0 on 2016-08-28)

I need to find the transformation matrix
(homogeneous coordinates) that flips an
object about a plane whose normal is
directed towards (-2 2 0), and intersects the
y-axis at y=2.

I know how to do that when I have 3 points on the plane (A,B,C): translate to origin, find the orthonormal basis of the plane (u,v,w axes) and then rotate the plane to match XYZ coordinate system (with the axes I found), perform the reflection, rotate back and translate back.

However in this case I have a normal and another data which I don't know how to use.

Any ideas?

**Tags:** 3d, transformations


---

## 1 answers

### Answer by username_1 on 2016-08-28. Score: 2

This is the same problem as the rotation about an axis. What you need is a matrix (any matrix) that satisfies the following corner constraint: one axis must point toward $(-2, 2, 0)$ in the case of a rotation this matrix must be a rotation matrix, in the case of a planar mirror it just has to span the 3D space. But since we know how to make an arbitrary rotation matrix we use the same approach.

1. Pick any vector (u) that's not parallel to the normal (n)
2. Take cross product of u and n for b
3. Take cross product of n and b for a

You now have an arbitrary rotation matrix with one axis defined using vectors n, b and a. Otherwise same as [the last question](https://computergraphics.stackexchange.com/questions/3911/transformation-matrices).

> **Comments:**
> **username_0**: Can you please give a full technical answer with the vectors exact calculations and normalizations? I'm finding it difficult to follow the logic. 1. Why is it the same as rotation about an axis? With rotation around axis, you HAVE to use the axis as one of the 3 orthonormal basis you create (here you don't use the normal N). 2. Why do you take a "vector thats not parallel to normal" and not the normal?  
> **username_0**: I'd expect something like: $w=\dfrac{n}{|n|}$, $v=\dfrac{n\times (0,0,1)^T}{|n\times (0,0,1)^T|}$, $u=v\times w$  
> **username_1**: @jiang you need to stop thinking in formulas and drawing the vectors. Once you do it gets easier to understand the only reason you do not understand is because you look at the formulas. Ys there was a paste error in the procedure.  
> **username_1**: But note you do not have to orthonormalize the matrix, you do not have to normalize the vectors, you could use the sizing in the reflection vectors. You dont need the vectors to be calculated this way. Your secodary directions could easily be  n+(0,1,0) and n+(0,0,1) but its just easier if you have a rotation matrix. But as i said draw the matrix vector on a piece of paper or screen @jiang then you will never need to remember the formulas as it becomes evident once you draw enough images.  

---

