Sign in to follow this  

Transforming something using a "delta matrix"

This topic is 2818 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi guys, I want to be able to apply a delta transformation matrix to a positional vector and I don't know how to compute this "delta" matrix. The delta matrix is effectively the change between one frame and the next of an object (A) so if you apply it to another object (B) it transforms by the same effectively making the (B) a child of (A) but it's position is stored in worldspace rather than the local space of (A). I don't care about anything other than the position of (B) as it's a particle if that makes the maths any easier or less expensive to compute. From writing a physics engine 10 years ago I almost remember that you could use something called the tilda operation for this but I can't remember exactly what it was or even if I'm correct in thinking this. Thanks John.

Share this post


Link to post
Share on other sites
I'm not sure I understand the question. Do you have an object B whose position is specified in world space, and you want to transform that position so it becomes relative to A's local space?

In that case, you should transform the position by the inverse of A's world transform.

Share this post


Link to post
Share on other sites
Quote:
Original post by JohnOwens
it transforms by the same effectively making the (B) a child of (A) but it's position is stored in worldspace rather than the local space of (A).


I also am really unsure what you're referring to. Could it be the Lie adjoint operator?

I'd forgotten the precise definition of this; I found it surprisingly in the documentation for a C++ class here.

To paraphrase the above source:
Quote:
This is the operation such that for an element B in SE(3) and v in se(3),
exp(Adj_B(v)) = B exp(v) B^{-1}


where exp is the exponential map from so(3) to SO(3).

Share this post


Link to post
Share on other sites
OK I'll try to explain this better :-)

Basically all the positions and transformation matrices are in world space.

I make changes to object A calling functions by rotating around local axis and translating etc.

I want to apply these same transformations to object B however all I have to work them out is the previous transformation matrix before these transformations of A and the resultant transformation matrux after these transformations.

I hope this makes it clearer.

Share this post


Link to post
Share on other sites
In the following I'm using column vectors.

If A denotes the frame of object A before the additional transformations are done, then let
A' := M * A
be the frame after being transformed by M, where M may be composed of as many particular transformations as wanted:
M := Mn * ... * M1

If I understand the OP correctly, then the same should happen to object B, so that
B' := M * B

If M is computed separately, it can simply be applied, of course. If instead just A and A' are known, then from the first formula after multiplying with A-1 on the right we get
A' * A-1 = M
This can be understood as "delta matrix", I think.

Is that what you're looking for? However, I have no real clue what you mean with "tilda operation", except perhaps it is used as inversion (although I know it as inversion of sets only ...)

Share this post


Link to post
Share on other sites
Thanks haegar

That was exactly what I was looking for and yea that's what I called the tilda operation. I can also do a quick inverse using just the transpose as there won't be any scaling.

btw - I can't specify the particles in local space due to the way the particle system is written.

Share this post


Link to post
Share on other sites

This topic is 2818 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this