# How to transform a plane

## How to transform a plane

Suppose you have a plane equation in local space and you’d like to express that plane equation in world space. The plane in local space is written as:
[ P := (n, w) ]
where (n) is the plane normal and (w) is the plane offset.
A point (x) is on the plane if
[n cdot x = w ]
Now define a transform (A) as
[ A := (R, p) ]
where (R) is an orthonormal rotation matrix and (p) is a translation vector.
Suppose we have a transform (A) that transforms points in local space into world space. With our transform (A) we can convert any point (x_1) in local space (space 1) into world space (space 2):
[x_2 = R x_1 + p]
Also any vector (n_1) in local space can be converted to world space:
[n_2 = R n_1]
Also suppose we have a plane defined in local space (space 1). Then for any point (x_1) in local space:
[n_1 cdot x_1 = w_1 ]
The main problem now is to find (w_2), the plane offset in world space. We can achieve this by substitution. First invert the transform relations above:
[x_1 = R^T (x_2 – p)]
[n_1 = R^T n_2]
where (R^T) is the transpose of (R). Recall that the inverse of an orthonormal matrix is the equal to the transpose.
Now substitute these expressions into the local space plane equation:
[R^T n_2 cdot (R^T (x_2 – p)) = w_1]
Expand:
[R^T n_2 cdot R^T x_2 – R^T n_2 cdot R^T p = w_1]
The rotations cancel out since they are orthonormal. Also the dot product is equivalent to matrix multiplication by the transpose. For example:
[R^T n_2 cdot R^T x_2 = n_2^T R R^T x_2 = n_2^T I x_2 = n_2 cdot x_2]
Simplify:
[n_2 cdot x_2 = w_1 + n_2 cdot p]
From this we can identify the world space plane offset (w_2):
[w_2 = w_1 + n_2 cdot p]
Done!

Recap of G4C18 Festival and XR4C Summit
Thursday July 12, 2018

15 years celebrating the impact of games!   It’s a wrap! This year’s 15th annual Games for Change Festival was a major success! We hosted over 1000 attendees with many of them coming from countries around the world. The 3 day event kicked off with the proclamation from Mayor Bill DeBlasio that Thursday, June […]