# Transforming something using a "delta matrix"

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

## 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 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 on other sites
Quote:
 Original post by JohnOwensit 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 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 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 on other sites
If the particle B is always acting like a child to A, then you should probably specify the coordinates of B with respect to A, rather than with respect to the world.

##### 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.

1. 1
2. 2
Rutin
24
3. 3
4. 4
JoeJ
16
5. 5

• 14
• 29
• 11
• 11
• 9
• ### Forum Statistics

• Total Topics
631773
• Total Posts
3002268
×