I have a plane equation in the form:

Ax + By + Cz + D = 0

Is there any possible way to find out which operations transform the plane to the xy plane?

EDIT: I am guessing you would need a translation and a rotation because sometimes the plane won't intersect the origin so you need to translate it to the origin then rotate. However, I am still confused as to how I'm supposed to get these angles and translations just from the plane equation.


As you have said we have to perform a translation and a rotation.

For the translation note that the plane $ax+by+cz+d=0$ intersects the $z$ axis at $(0,0,-d/c)$ so the translation $\vec{t}:(x,y,z)\rightarrow (x,y,z-d/c)$ give you a plane $ax+by+cz=0$ that passes thorough the origin and is orthogonal to the vector $\vec{v}=(a,b,c)^T$

For the rotation note that the angle between $\vec{v}$ and $\vec{k}=(0,0,1)^T$ is given by: $$ \cos \theta=\dfrac{(\vec{v},\vec{k})}{|\vec{v}|}=\dfrac{c}{\sqrt{a^2+b^2+c^2}} $$ and the axis of rotation have to be orthogonal to $\vec{v}$ and $\vec{k}$ so its versor is: $$ \vec{u}=\dfrac{\vec{v}\times\vec{k}}{|\vec{v}|}=\dfrac{1}{\sqrt{a^2+b^2+c^2}}\left(b,-a,0\right)^T=(u_1,u_2,0)^T $$ the rotation (if I've not made some typo) is represented by the matrix: $$ \left ( \begin{array}{cccc} \cos \theta +u_1^2 (1-\cos \theta) &u_1u_2 (1-\cos \theta) & +u_2\sin \theta \\ u_1u_2 (1-\cos \theta)& \cos \theta+ u_2^2 (1-\cos \theta)& -u_1 \sin \theta \\ -u_2 \sin \theta & u_1 \sin \theta& \cos \theta \end {array} \right) $$ see here.


To help you compute the rotation matrix more quickly, I've isolated all the quantities that appear:

$ cos \theta = \frac{c}{\sqrt{a^2 + b^2 + c^2}} $

$ sin \theta = \sqrt{\frac{a^2+b^2}{a^2 + b^2 + c^2}} $

$ u_1 = \frac{b}{\sqrt{a^2 + b^2 + c^2}} $

$ u_2 = -\frac{a}{\sqrt{a^2 + b^2 + c^2}} $

  • 1
    $\begingroup$ This was much more complicated than I thought. It worked perfectly nevertheless. Thank you. $\endgroup$ – Ogen Feb 28 '15 at 1:20
  • $\begingroup$ While staring at your solution, @Emilio Novati, I realized we should be able to normalize a, b, and c, but it seems like that would affect the rotation matrix, which It shouldn't. Does normalizing affect the rotation matrix? $\endgroup$ – frank Sep 26 '18 at 17:40
  • $\begingroup$ Revised: after a moment's thought, I realized that by normalizing all I'm doing anyway is dividing every a, b, and c value through by $\sqrt {a^2 + b^2 + c^2}$. So probably the best way to take a shortcut with computation is to separately compute $a^2 + b^2 + c^2$ and $\sqrt {a^2 + b^2 + c^2}$. $\endgroup$ – frank Sep 26 '18 at 17:45
  • $\begingroup$ I have a question: how should I apply the rotation matrix? Should I do a a multiplication between the matrix and the vector (a,b,c)? $\endgroup$ – qcc101 Mar 11 at 16:11
  • $\begingroup$ Multiplying the matrix by the vector $(a,b,c)$ you find a vector on the $z$ axis, i.e. orthogonal to the $xy$ plane. $\endgroup$ – Emilio Novati Mar 13 at 9:15

I tried to add this as a comment to Emilio Novati's answer but don't have enough points. The rotation matrix here requires that the vector along the rotation axis, $\vec{u}$, is a unit vector, so:


which gives the components:

$u_1 = \frac{b}{\sqrt{a^2 + b^2}}$

$u_2 = -\frac{a}{\sqrt{a^2 + b^2}}$

for the same rotation matrix:

$$\left ( \begin{array}{cccc} \cos \theta +u_1^2 (1-\cos \theta) &u_1u_2 (1-\cos \theta) & u_2\sin \theta \\ u_1u_2 (1-\cos \theta)& \cos \theta+ u_2^2 (1-\cos \theta)& -u_1 \sin \theta \\ -u_2 \sin \theta & u_1 \sin \theta& \cos \theta \end {array} \right)$$


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.