Rotate a plane through its coefficients

  • #1
402
1

Main Question or Discussion Point

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
 

Answers and Replies

  • #2
1,015
3
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
402
1
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
1,015
3
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 ;)
 
  • #5
402
1
Thanks :)
 
  • #6
43
1
Hi,

I'm a little confused. After all, wich 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:

Related Threads on Rotate a plane through its coefficients

  • Last Post
Replies
2
Views
2K
Replies
8
Views
551
  • Last Post
Replies
1
Views
939
  • Last Post
Replies
5
Views
705
  • Last Post
Replies
13
Views
2K
  • Last Post
Replies
5
Views
489
Replies
2
Views
1K
Replies
1
Views
774
  • Last Post
Replies
6
Views
5K
  • Last Post
Replies
4
Views
22K
Top