MathGroup Archive 2001

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Rotation3D, MatrixRotation3D ?

ojg wrote:
> Question regarding rotations.
> Some of the documentation found regarding this is not as far as I can see
> complete in the documentation, at least the subject is difficult enough to
> make me unsure once not 100% clear:)
> Fist, what are the defined "euler angles" in mathematica, and in what order
> are they applied?

The order of the Euler angels is fixed by it's definition.
You may look at
> Second, of which side of the vector is the rotational matrix multiplied ?

As usual matrix.vector 

> Third, is there a mathematica way to rotate around an abitrary rotational
> axis? If not, what would the mathematica matix be for this?

rotationmatrix[axis_?VectorQ,theta_?NumericQ] :=
    If[norm<$MachineEpsilon, Return[IndentityMatrix[3]] ];
    {nx,ny,nz} = N[axis/norm];
	   N[{{ nx^2 + (1 - nx^2)*ct,nx*ny*(1 - ct) + nz*st,nx*nz*(1 - ct) -
 	     { nx*ny*(1 - ct) - nz*st,ny^2 + (1 - ny^2)*ct,ny*nz*(1 - ct) +
	     { nx*nz*(1 - ct) + ny*st,ny*nz*(1 - ct) - nx*st,nz^2 + (1 -

MathGL3d has the MVRotate3D[] function to do vector/axis rotations.

> My problem to solve is as follows: Given three rotational angles (a,b,c)
> applied in order to the following three rotational axes: Y axis, X axis, Z
> axis. (usual right hand system). This rotation applied to any vector v will
> give you a vector V (first Y rotation applied on v, etc).

And for what do you need Euler angles ?

> Now, given a rotational matrix with pure numerical values in, I need to find
> the three angles, and I need a general formulae for this solution taking
> care of the special cases.

This can't exist. Because for an arbitary matrix it will not possible to
find a
solution. The matrix must be orthogonal R^T R=1. 


  • Prev by Date: Re: Rotation3D, MatrixRotation3D ?
  • Next by Date: Re: Intersection of polygons and more
  • Previous by thread: Re: Rotation3D, MatrixRotation3D ?
  • Next by thread: RE: Rotation3D, MatrixRotation3D ?