I would like to convert the coordinates of a PlanarLine defined in a pf
file to world coordinates. I assumed that the way to do this was multiple
the (x, y, 0) of each control point by a transformation matrix specific by
the transformParam. That does not seem to work. Apparently I am just
supposed to add the origin to the control point. What am I misunderstanding
with how the planar figure / PlanarLine is represented in XML? These files
are created using MITK-GEM and stored in an mitk scene file.

Here is the pf file:

<?xml version="1.0" ?>
<Version 
Writer="C:\MITK\build2013\MITK\Modules\PlanarFigure\src\IO\mitkPlanarFigureWriter.cpp"
CVSRevision="$Revision: 17055 $" FileVersion="1" />
<PlanarFigure type="PlanarLine">
    <property key="closed" type="BoolProperty">
        <bool value="false" />
    </property>
    <property key="initiallyplaced" type="BoolProperty">
        <bool value="true" />
    </property>
    <ControlPoints>
        <Vertex id="0" x="115.8695640182204" y="213.91333499194826" />
        <Vertex id="1" x="112.39129840859526" y="44.347886522720955" />
    </ControlPoints>
    <Geometry>
        <transformParam param0="0.958333313465118" param1="0"
param2="0" param3="0" param4="-0.958333313465118" param5="0"
param6="0" param7="0" param8="-6.50000047683716"
param9="-112.320826202631" param10="112.13685862045457"
param11="29.695721817634535" />
        <boundsParam bound0="0" bound1="240" bound2="0"
bound3="262.53344449978272" bound4="0" bound5="1" />
        <Spacing x="0.958333313465118" y="0.958333313465118"
z="6.500000476837157" />
        <Origin x="-112.320826202631" y="112.13685862045457"
z="29.695721817634535" />
    </Geometry>
</PlanarFigure>


naively this was the matrix I tried to use:

array([[   0.95833331,    0.        ,    0.        ,    0.        ],
       [   0.        ,   -0.95833331,    0.        ,    0.        ],
       [   0.        ,    0.        ,   -6.50000048,    0.        ],
       [-112.32082367,  112.13685608,   29.69572258,    1.        ]])


however this is the matrix that actually works:

array([[   1.        ,    0.        ,    0.        ,    0.        ],
       [   0.        ,   -1.        ,    0.        ,    0.        ],
       [   0.        ,    0.        ,   -1.        ,    0.        ],
       [-112.32082367,  112.13685608,   29.69572258,    1.        ]])


Is there a more correct way of creating the second matrix other than
setting the on diagonal elements to (+1 or-1)? How do I do if the
value should be +1 or -1?


Thanks for the help,

Alex
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to