Senior Moderators - Reputation: 1788
Posted 19 July 2002 - 10:57 AM
A: translate the plane to the origin.
B: rotate the plane to the XY plane.
C: invert the Z coordinate.
D: inverse of matrix B
E: inverse of matrix A
Don''t listen to me. I''ve had too much coffee.
Members - Reputation: 351
Posted 22 July 2002 - 01:43 AM
x'' = x - 2(x.n)n
where n is the unit normal to the plane. This is a linear function of x, so it has a matrix representation,
x'' = Mx
where M is the matrix
( 1 - 2aa, -2ab, -2ac)
( -2ab, 1 - 2bb, -2bc)
( -2ac, -2bc, 1 - 2cc)
where (a, b, c) is the unit vector n, aa = a * a, i.e. ''a'' squared.
This is a 3x3 matrix reflecting in a plane through the origin. Note it is NOT a rotation matrix, so do not try to check it as such. E.g. it''s determinant is not 1 but -1.
If the plane is not through the origin it requires a 4x4 matrix with a translation element. The translation part equals what happens to the origin when reflected, and the origin is reflected though a distance twice it''s distance from the plane along the direction of the plane normal, i.e. just work out the position of the origin after the reflection to complete the matrix.