15
$\begingroup$

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.

$\endgroup$

2 Answers 2

21
$\begingroup$

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}\times\vec{k}|}=\dfrac{1}{\sqrt{a^2+b^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.

EDIT:

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 }} $

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

$\endgroup$
8
  • 2
    $\begingroup$ This was much more complicated than I thought. It worked perfectly nevertheless. Thank you. $\endgroup$
    – Ogen
    Feb 28, 2015 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$ Sep 26, 2018 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$ Sep 26, 2018 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, 2019 at 16:11
  • 1
    $\begingroup$ If I plug in $a = b = c = 1$, I get a matrix which is not a rotation, because it is not orthogonal ($R \times R' \neq I$). Am I making a stupid mistake? $\endgroup$
    – chaffdog
    Feb 11, 2021 at 9:48
6
$\begingroup$

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:

$$\hat{u}=\dfrac{\vec{v}\times\vec{k}}{|\vec{v}\times\vec{k}|}=\dfrac{1}{\sqrt{a^2+b^2}}\left(b,-a,0\right)^T=(u_1,u_2,0)^T$$

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)$$

$\endgroup$
1
  • $\begingroup$ Thank you @paterry, I amended my answer. :) $\endgroup$ Oct 4 at 14:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .