How to Translate & Rotate & scale two 3D triangles to match each other

182 Views Asked by At

My goal is I need to match two 3d Model let's say I have two tea pot model , for that I have added 3 points in each 3D model and then I am trying to create matrix to translate & rotate & scale source 3D model exactly match to target 3D model.

Let's say I have two triangles which are the points 3D

enter image description here

1

There are 1 best solutions below

1
On

Translation, rotation and scale are known as Rigid Transformations. Since rigid transformations preserve angles and orientation (i.e., I am excluding reflection) then, in general, two arbitrary triangles are NOT related by a rigid transformation.

However you can find the "best" rigid transformation in the "least squares" sense (see Kabsch Problem https://en.m.wikipedia.org/wiki/Kabsch_algorithm, however you will need to account for scaling).

For surfaces you will need to do a Conformal Registration, i.e., a mapping of surfaces that preserve angles and orientation "as much as possible" e.g., in the least squares sense (see for instance https://dl.acm.org/doi/10.1111/cgf.12451)