<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.3157" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV dir=ltr align=left><SPAN class=015573512-24082007><FONT face=Arial 
color=#0000ff size=2>Hi Nic,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=015573512-24082007><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=015573512-24082007><FONT face=Arial 
color=#0000ff size=2>Here is some example code, it uses the vnl package included 
with Inisght.&nbsp; RMat contians the 3x3 rotation matrix, while RR contains the 
initialized Quaternion.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=015573512-24082007><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=015573512-24082007><FONT face=Arial 
color=#0000ff size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
Rotate!<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double RotX, RotY, 
RotZ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RotX = InitialRotation[0] * vnl_math::pi 
/ 180.0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RotY = InitialRotation[1] * 
vnl_math::pi / 180.0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RotZ = 
InitialRotation[2] * vnl_math::pi / 180.0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
vnl_quaternion&lt;double&gt; Rx(vcl_sin(RotX/2.0), 0, 0, 
vcl_cos(RotX/2.0));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
vnl_quaternion&lt;double&gt; Ry(0, vcl_sin(RotY/2.0), 0, 
vcl_cos(RotY/2.0));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
vnl_quaternion&lt;double&gt; Rz(0, 0, vcl_sin(RotZ/2.0), 
vcl_cos(RotZ/2.0));</FONT></SPAN></DIV>
<DIV>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=015573512-24082007><FONT face=Arial 
color=#0000ff size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vnl_quaternion&lt;double&gt; 
RR = Rx * Ry * Rz;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
vnl_matrix_fixed&lt;double,3,3&gt; RMat = 
RR.rotation_matrix_transpose();<BR></FONT></SPAN></DIV><SPAN 
class=015573512-24082007></SPAN><FONT face=Arial><FONT color=#0000ff><FONT 
size=2>-dan<SPAN class=015573512-24082007></SPAN></FONT></FONT></FONT><BR>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
  <HR tabIndex=-1>
  <FONT face=Tahoma size=2><B>From:</B> 
  insight-users-bounces+blezek=crd.ge.com@itk.org 
  [mailto:insight-users-bounces+blezek=crd.ge.com@itk.org] <B>On Behalf Of 
  </B>Nic<BR><B>Sent:</B> Friday, August 24, 2007 7:12 AM<BR><B>To:</B> Insight 
  Users<BR><B>Subject:</B> [Insight-users] Quaternions and Euler 
  rotations<BR></FONT><BR></DIV>
  <DIV></DIV>
  <DIV><FONT face=Arial size=2>Hello,</FONT></DIV>
  <DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; doing a 3D registration of two 
  stacks as in example 8.6.1 and using itkVersorRigid3DTransform, I would like 
  to calculate the 3 axis components and the angle of the Versor resulting 
  from:</FONT></DIV>
  <DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; - a rotation of a certain 
  angle around z-axis</FONT></DIV>
  <DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; -&nbsp;a 180°rotation around 
  y-axis</FONT></DIV>
  <DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; -&nbsp;no rotation around 
  x-axis</FONT></DIV>
  <DIV><FONT face=Arial size=2>
  <DIV><FONT face=Arial size=2>This is because I would like to initialize my 
  transform before launching.</FONT></DIV>
  <DIV>Does anyone have an idea how to calculate it ? </FONT><FONT face=Arial 
  size=2>Seems that&nbsp;I have to calculate Quaternions; trying to do it 
  actually but I not really used with..</FONT></DIV>
  <DIV><FONT face=Arial size=2>Thx, nic</FONT></DIV></DIV>
  <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV></BLOCKQUOTE></BODY></HTML>