Results 1 to 13 of 13

Thread: SVD decomposition when using rotation and scaling pivots?

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Join Date
    Mar 2006
    Location
    The Netherlands
    Posts
    300
    Thanks
    9
    Thanked 29 Times in 29 Posts
    Qt products
    Qt3 Qt4
    Platforms
    Unix/X11

    Default Re: SVD decomposition when using rotation and scaling pivots?

    We're homing in on your actual question.

    So originally both A and B contributed some transformation matrices (let's say C, D, E, F, G and H). Multiplied in the correct order they form matrix M and you want to decompose that into one translation, one scaling and one rotation (I, J and K). So:

    CDEFGH = M = IJK

    If you can obtain these using SVD you will get a result with the original pivot points baked in, yes. I don't think it's possible to retrieve them, since both B and A contributed transformations. By combining them into M you lost information. What effect does it have on the result? Well, if you apply IJK to a 3D vector it will have the exact same result as applying M or CDEFGH.
    "The strength of a civilization is not measured by its ability to wage wars, but rather by its ability to prevent them." - Gene Roddenberry

  2. #2
    Join Date
    May 2006
    Location
    Stockholm, Sweden
    Posts
    81
    Thanks
    12
    Thanked 1 Time in 1 Post
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11

    Default Re: SVD decomposition when using rotation and scaling pivots?

    Well, that is what I'm not sure of. So what you're saying is that they would automaticly rotate and scale around the pivot points? I'm not really sure of that. That is why I need to see some papers about the subject.

  3. #3
    Join Date
    Mar 2006
    Location
    The Netherlands
    Posts
    300
    Thanks
    9
    Thanked 29 Times in 29 Posts
    Qt products
    Qt3 Qt4
    Platforms
    Unix/X11

    Default Re: SVD decomposition when using rotation and scaling pivots?

    I am sure. If the original matrices (CDEFGH) did the correct translations from and to the pivot points, then they will be retained after the multiplication and decomposition. Of course, you won't see all seperate original transformations happen, but the end result will be the same.

    If you can say something like: CDEFGH = M (which is valid after matrix multiplications) then wherever you can use CDEFGH (like to transform a vector), you can also use M with the same result. This is done often in computer graphics.

    Similarly, if you can say: M = IJK, then anywhere you can use M, you can use IJK with the same result. Like I said, it's been a while since I used singular value decomposition, so I'm not exactly sure you can get your three matrices that way. But if you can, you can be sure that the resulting three matrices have the same effect as the original M.

    Why don't you try wikipedia?
    "The strength of a civilization is not measured by its ability to wage wars, but rather by its ability to prevent them." - Gene Roddenberry

  4. #4
    Join Date
    May 2006
    Location
    Stockholm, Sweden
    Posts
    81
    Thanks
    12
    Thanked 1 Time in 1 Post
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11

    Default Re: SVD decomposition when using rotation and scaling pivots?

    Ok, but SVG is used to get the scaling and rotation. The translation isn't calculated. It is already ready in one of the colmns.

    This means that I suppose that the translation is made in the origo of the coordinate space. I suppose that I can just compute the transformation comlumn for the scaling and roation matrixes which are made because of the pivot points. Then I can subtract these from the new translation.

    But I really want to be sure about this. The program is supposed to be used by scientists. It really would be nice to read about this somewere else. Because I feel a bit rusty and I would like to be 110% sure.

    pir

  5. #5
    Join Date
    Mar 2006
    Location
    The Netherlands
    Posts
    300
    Thanks
    9
    Thanked 29 Times in 29 Posts
    Qt products
    Qt3 Qt4
    Platforms
    Unix/X11

    Default Re: SVD decomposition when using rotation and scaling pivots?

    Translation is the only transformation that uses the fourth column. I don't think you need to think in terms of pivot points. That's all been done already. If you've got M and two of I,J,K, you can find the translation-matrix easily.

    If wikipedia isn't enough, I can't really help you further. You might try google, but you've probably already tried that.

    Good luck!
    "The strength of a civilization is not measured by its ability to wage wars, but rather by its ability to prevent them." - Gene Roddenberry

  6. #6
    Join Date
    May 2006
    Location
    Stockholm, Sweden
    Posts
    81
    Thanks
    12
    Thanked 1 Time in 1 Post
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11

    Default Re: SVD decomposition when using rotation and scaling pivots?

    If I don't use the pivots points after the SVD, then I loose controll of their functionality. I also need to think of this when I set up the local space after SVD. Because it would be done twice. But it doesn't matter. I have thought about it, and I'm pretty sure that the pivot point information does not concern the SVD step. That is stored in the translation column. I just think it's strange that I can't find any websites that doing this.

    Thanks for your help.

    Is there any one else who knows a tutorial or paper about this?
    That is, how to use SVD when there are pivot points in the transformation matrix?
    ( what I'm really after is the step that I think does not involve SVD, the translation )


    pir

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Qt is a trademark of The Qt Company.