<div dir="ltr">Hi Bradley,<div><br></div><div>Hmm, GetCenter() negated should be the same as InvCRM. I'll flip the order of the multiplication and see what happens, it could be the C++ operator*() order being different from the way its written. Its so annoying to get the results close but not exact :(</div>
<div><br></div><div>Thanks</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Aug 5, 2014 at 9:12 PM, Bradley Lowekamp <span dir="ltr"><<a href="mailto:blowekamp@mail.nih.gov" target="_blank">blowekamp@mail.nih.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
That looks pretty close, but I think CRM[12,13,14] should be -GetCenter(), with the negative there.  Then the TM should be applied last, using your original notation with the previously mentioned correction I'd expect this to be correct:<br>

<br>
OGLM = TM * InvCRM * Rot * CRM<br>
<br>
Hope that helps,<br>
Brad<br>
<br>
[1] <a href="http://www.itk.org/Doxygen/html/classitk_1_1MatrixOffsetTransformBase.html" target="_blank">http://www.itk.org/Doxygen/html/classitk_1_1MatrixOffsetTransformBase.html</a><br>
<div><div class="h5"><br>
On Aug 5, 2014, at 5:26 AM, vincent ngai <<a href="mailto:vincent.ngai@gmail.com">vincent.ngai@gmail.com</a>> wrote:<br>
<br>
> Hi all, apologies if this has been asked before, I googled the above but only got 4x4 -> AffineTransform and not the other way around.<br>
><br>
> I need to get the output of an AffineTransform after registration to my OpenGL renderer.<br>
><br>
> From what I understand, the AffineTransform is composed of a Rotation, Center of Rotation and Translation.<br>
><br>
> So would the following sequence of 4x4 transformation be correct?<br>
><br>
> OGLM = InvCRM * Rot * CRM * TM<br>
><br>
> where<br>
><br>
> CRM      = 4x4 identity matrix with indices [ 12, 13, 14] set to XYZ value of GetCenter()<br>
> InvCRM  = Inverse of CRM<br>
> Rot        = 4x4 Identity matrix with 3x3 set to the rotation parameters<br>
> TM        = 4x4 identity matrix with indicies[ 12, 13, 14 ] set to the translation parameters<br>
><br>
> Essentially:<br>
><br>
> 1) translate center to origin<br>
> 2) perform rotation<br>
> 3) translate back to where we were<br>
> 4) slap on translation<br>
><br>
> I am doing the above, but for some reason the translation does not match up. The rotation seems fine.<br>
> --<br>
> Regards,<br>
> Vincent<br>
</div></div>> _____________________________________<br>
> Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
><br>
> Visit other Kitware open-source projects at<br>
> <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
><br>
> Kitware offers ITK Training Courses, for more information visit:<br>
> <a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/products/protraining.php</a><br>
><br>
> Please keep messages on-topic and check the ITK FAQ at:<br>
> <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
><br>
> Follow this link to subscribe/unsubscribe:<br>
> <a href="http://public.kitware.com/mailman/listinfo/insight-users" target="_blank">http://public.kitware.com/mailman/listinfo/insight-users</a><br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Regards,<br>Vincent<br>
</div>