Rotate a plane through its coefficients

  • #1
402
1
Hello mathematicians,

I'm creating a program and I need in this program to rotate some planes around the origin, while I'm given the coefficients a,b,c and d for this plane, they represent a plane of the form:

a x + b y + c z = d

So these coefficients are given and I want to rotate the plane with Euler angles (alpha, beta and gamma).

What I tried is the following:
As a first step, I need to parametrise this plane, to do that I casted this simple parametrisation:

x = u,
y = v,
z = (d - a u - b v)/c

So now to apply the rotation I just have to use the rotation group, as follows:

x' = u cos(alpha) + v sin(alpha),
y' = -u sin(alpha) + v cos(alpha),
z' = z,

where x',y',z' are the rotated coordinates.

Now the problem appears here. How will I restore this form as coefficients a,b,c and d to be in the first formulation ax'+by'+cz'=d? In other words how will I cancel the parametrisation?

Have I chosen the shortest path? is there a smarter way to do this?

Any effort is highly appreciated,

Thank you
 
  • #2
Of course you will need to do your rotation for all three Euler angles.

Now the problem appears here. How will I restore this form as coefficients a,b,c and d to be in the first formulation ax'+by'+cz'=d? In other words how will I cancel the parametrisation?
To do this you can use
[tex]\vec{x}=u\vec{a}+v\vec{b}+\vec{c}[/tex]
and multiply out
[tex]\therefore \vec{n}\cdot\vec{x}=\vec{n}\cdot\vec{c}[/tex]
where the normal vector
[tex]\vec{n}=\vec{a}\times\vec{b}[/tex]
is the cross product.

However I would recommend a simpler approach:
Just rotate the vector (a,b,c) (which is the normal vector) to get new coefficients (a',b',c'). Check it, but I believe this should work. For rotations about the origin, the value of d should be unchanged
 
  • #3
Thank you so much for your answer :)

Actually I apparently have found a very simple way, but maybe you could tell me whether it's right, because it seems trivial somehow!

The method is to substitute the rotations directly in the plane equation without parametrising, so to do the first rotation for example:

ax+by+cz=d ->
a(x cos(alpha) + y sin(alpha)) + b(-x sin(alpha) + y cos(alpha)) + cz = d

where I did the substitution:
x -> x cos(alpha) + y sin(alpha)
y -> -x sin(alpha) + y cos(alpha)

Now after this, I rearrange the equation again to restore the original form a'x+b'y+c'z=d, and the result is:

a' = a cos(alpha) - b sin(alpha)
b' = a sin(alpha) + b cos(alpha)
c' = c

where a', b' and c' are the coefficients for the rotated plane.

Actually I plotted both planes and I found a rotation around the z axis :D... What do you think? is this right? maybe there's something I can't visualise ;)

Thank you again!
 
  • #4
I guess it's correct. It probably just depends what someone finds easier to visualize. In my method you'd directly use your final equation since I know that (a,b,c) is the normal vector of the plane.

Of course in the end you need to do you the one angle rotation for all three Euler angles. Make sure you rotate around the correct axis in the correct order ;)
 
  • #6
Hi,

I'm a little confused. After all, which one is the solution? The "TheDestroyer" one? Or rotating (a,b,c) - the Gerenuk's one? Or...are they basically the same?

Kind regards,

CPtolemy
 
Last edited:

Suggested for: Rotate a plane through its coefficients

Replies
1
Views
577
Replies
10
Views
917
Replies
1
Views
542
Replies
13
Views
822
Replies
3
Views
577
Replies
13
Views
1K
Replies
1
Views
695
Replies
1
Views
698
Replies
3
Views
625
Back
Top