Understanding 3d vectors

Feel free to ask any question here
Post Reply
dobinchoi
Posts: 1
Joined: Mon Dec 12, 2016 4:34 am

Understanding 3d vectors

Post by dobinchoi »

Hello!!

I'm using CC for my dental research to measure the amount of displacement of certain teeth. So I initially align the two dental scans, and re-align them to a target tooth and calculate the amount of displacement from the resulting transformation matrix.
In the transformation matrix, I understand that the last column represents the translation in x, y, z-axes. But when I compare these numbers to the actual measurements I made on the models, these numbers don't really correspond to the actual measurements. Also I'm having trouble calculating the angular changes from the rotation matrix.

Please help me figure out the components of the tranformation matrix so that i can acquire the amount of angular and linear displacements. Is there a reason that the 3d vectors don't correspond to the actual measurements on the models? Also, is there a formula I can use to calculate angles? Lastly, what would be the unit for the vectors?

Thank you!!
daniel
Site Admin
Posts: 7710
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: Understanding 3d vectors

Post by daniel »

In fact with 4x4 transformation matrices, the translation is applied AFTER the rotation. And the rotation is implicitly applied about (0, 0, 0). Therefore, if your object (tooth) is not centered on (0, 0, 0), it will be shifted by the rotation. And the translation will have to compensate for this shift, in addition to the 'real' shift necessary for aligning the entity.

To estimate the 'real' translation, you have to apply the transformation to the object (tooth) center and then see how far it moved. To do this you'll need an external program (e.g. Matlab or Scilab, but even Excel can do this). Another option is to move the entities so that the aligned tooth is centered on the origin before applying the registration process.

For angles it's a little bit harder, but once again with an external tool such as Matlab or Scilab, you should be able to estimate the rotation 'quantity' about a given axis for instance.
Daniel, CloudCompare admin
Post Reply