I have got 2 Points in 3D Space whose TRS Matrix' from 0.0 to there current place is known. Now I want to change the Matrix of the left point so that the matrix of the right point combined with the new Matrix results in the point being at the same position as before. Here a short illustration that I hope helps a little. Sorry for the bad explanation

enter image description here

  • \$\begingroup\$ You want to derive a transformation matrix to move point B (right) to point A (left)? \$\endgroup\$ – dot_Sp0T Dec 5 '17 at 18:36
  • \$\begingroup\$ Bad explanations only hurt the Asker. Are you trying to find a displacement vector such that the current vector plus the unknown vector result in the old displacement vector? \$\endgroup\$ – Stephan Dec 5 '17 at 18:38
  • \$\begingroup\$ yes I need such a matrix and have to calculate it out of the two known ones. I need the Matrix tho not a vector, Rotation, translation and Scalar also have to be changed accordingly if there were any \$\endgroup\$ – Zero9178 Dec 5 '17 at 18:50

The question hardly makes sense for points, since, if I'm not mistaken, there are infinitely many matrices that would fit.

If you mean 'objects' rather than 'points', then the answer simple:

You have

B × С = A

where A is the matrix of the left object, B is the matrix of the right object, and C is unknown.

                B × С = A  ↔ 
↔  inverse(B) × B × C = inverse(B) × A  ↔
↔                   C = inverse(B) × A

Thus you need to multiply the inverse matrix of the right object by the matrix of the left object.


Points have no orientation, only a position.

This means your question does not make sense. There is no "matrix" for a point. If there was a matrix, the point would be a local coordinate frame (three axes and an origin.)

To move a point from B to A, you add a translation vector (not apply a 4x4 matrix.)


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.