3D Coordinate transformation and Euler Angles

Click For Summary

Discussion Overview

The discussion revolves around the transformation of 3D coordinates in the context of a galaxy formation simulation. Participants explore methods to align the coordinate system with the principal axis of a disk-like structure formed by particles, specifically focusing on the use of Euler angles and rotation matrices for this transformation.

Discussion Character

  • Technical explanation
  • Exploratory
  • Mathematical reasoning

Main Points Raised

  • One participant describes the need to rotate the coordinate axes so that the z' axis aligns with a principal axis derived from the moment of inertia tensor of the galaxy particles.
  • The same participant proposes using Euler angles (α, β, γ) for the rotation but struggles with determining these angles for an arbitrary principal axis vector v.
  • Another participant suggests that instead of using angles, a rotation matrix can be constructed directly from the new base vectors, indicating that all three base vectors are necessary for the transformation.
  • A follow-up response acknowledges the suggestion and expresses uncertainty about how to construct the rotation matrix from the principal axes, indicating a reliance on traditional angle-based methods.
  • A later reply clarifies that the base vectors of the target coordinate system can be used as the rows of the rotation matrix, simplifying the approach.

Areas of Agreement / Disagreement

Participants do not reach a consensus on the necessity of using Euler angles versus constructing a rotation matrix directly from base vectors. The discussion reflects differing approaches to the problem without resolving which method is preferable.

Contextual Notes

There is an indication that the problem may be underdetermined if only one axis is specified without the other two base vectors. Participants express varying levels of familiarity with linear algebra concepts, which may affect their approaches.

clandarkfire
Messages
31
Reaction score
0
Hello,

I'm running a galaxy formation simulation. The output specifies the coordinates in (x, y, z) of all the particles in a galaxy, which usually fall in a disk. The orientation of the disk depends on the initial conditions, but it is generally not aligned with any of the coordinate axes.

I'm trying to write a function that will allow me to view the disk face on, rather than along one of the coordinate axes. E.g., I can view the galaxy along the z-axis by plotting x vs y for all particles, but unless the galaxy is in the x-y plane, I look at it at some arbitrary angle.

Right now, I'm finding the moment of inertia tensor of all the particles in the galaxy and using this to find the principal axes. As I would expect, the principal axis corresponding the the largest eigenvalue (e.g., moment) is a vector perpendicular to the disk.

Now I would like to "view" the galaxy looking along this principal axis. That is, I want to rotate my coordinate axes so that the z' axis is aligned with the principal axis. This will give all my particles new coordinates (x', y', and z'), and plotting (x' vs y') should show the disk face-on.

I know how to do this transformation using rotation matrices in terms of the angles α, β, and γ that I rotate around the x, y, and z axes, or in terms of the Euler angles. But for the life of me, I can't figure out how to properly find these angles if I want the z' axis to be aligned with the principal axis, say v = (v_x, v_y, v_z). My original thought was to set α=0 and then set β to the polar angle, given by β=v_z/sqrt(v_x^2 + v_y^2 + v_z^2). Finally, I'd set γ to the azimuthal angle.

This works if v is in the x-y, x-z, or y-z planes. But for an arbitrary v, it doesn't, because these rotations don't commute.

So how can I find α, β, and γ such that z' will align with an arbitrary v?

Thanks so much!
 
Physics news on Phys.org
clandarkfire said:
I can't figure out how to properly find these angles if I want the z' axis to be aligned with the principal axis
Do you actually need the angles? You can build the rotation matrix directly from the new base vectors. But you need all 3 of them, not just z'. Your problem is undetermined as stated now.
 
  • Like
Likes   Reactions: clandarkfire
A.T. said:
Do you actually need the angles? You can build the rotation matrix directly from the new base vectors. But you need all 3 of them, not just z'. Your problem is undetermined as stated now.
That would work too, but I'm not sure how I would go about building the rotation matrix from the principal axes -- I always learned rotations in terms of angles.
 
Last edited:
clandarkfire said:
but I'm not sure how I would go about building the rotation matrix from the principal axes
The base vectors of your target system are the rows of the matrix R, then p' = R * p.
 
  • Like
Likes   Reactions: clandarkfire
A.T. said:
The base vectors of your target system are the rows of the matrix R, then p' = R * p.
Oh gosh, that's much easier that I was thinking. It's been too long since I took linear algebra.

Thanks a million!
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 18 ·
Replies
18
Views
2K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 5 ·
Replies
5
Views
1K
Replies
17
Views
3K
Replies
2
Views
2K