Estimating 3d transformation of two triangles

Click For Summary

Discussion Overview

The discussion focuses on calculating the transformation matrix between two triangles in 3D space, specifically addressing rigid and non-rigid transformations. Participants explore methods for deriving the transformation matrix while fixing one vertex at the origin and the implications of non-rigid deformations.

Discussion Character

  • Technical explanation
  • Mathematical reasoning
  • Debate/contested

Main Points Raised

  • One participant inquires about calculating a rigid transformation matrix while fixing a point at the origin to eliminate translation.
  • Another participant suggests solving linear systems with a determinant of 1 under the constraints of initial and final points, noting the potential for free parameters based on the points and space dimensions.
  • It is proposed that for non-rigid deformations, the transformation will not be purely rotational, leading to a need for relaxed constraints (i.e., determinant not equal to 1).
  • A method is described for finding the transformation matrix by using two orthogonal rotations to position the vertices correctly.
  • Another participant mentions that if the triangles are normalized to have a vertex at the origin, a rigid transformation has only three degrees of freedom, relying solely on direction vectors.
  • In the case of non-rigid transformations, it is noted that there will be nine unknowns but only six equations, assuming a given association of vertices.
  • A further contribution details a method for rotating vectors using an axis of rotation and provides a specific rotation matrix formula, emphasizing the need to determine the angle of rotation.

Areas of Agreement / Disagreement

Participants express differing views on the implications of rigid versus non-rigid transformations, with no consensus reached on a single method or approach. The discussion remains unresolved regarding the best techniques for calculating the transformation matrix.

Contextual Notes

Limitations include assumptions about the normalization of triangles, the association of vertices, and the dependence on specific mathematical formulations for rotation.

nimmie
Messages
1
Reaction score
0
I have two triangles in 3d. I need to calculate transformation matrix(3X3) between two triangles in 3D.

1)How can I calculate the transformation matrix(rigid) while fixing one of the points to the origin(to get rid of the translation part)?

2)How does it affect if the deformation is non rigid?
 
Physics news on Phys.org
nimmie said:
I have two triangles in 3d. I need to calculate transformation matrix(3X3) between two triangles in 3D.

1)How can I calculate the transformation matrix(rigid) while fixing one of the points to the origin(to get rid of the translation part)?

2)How does it affect if the deformation is non rigid?

1) You can, in the general case solve a chunk of linear systems where the determinant of the matrix is 1, given the constraints of initial and final points that satisfy the transformation. If you can calculate something that makes sense, that is your answer (you may also have free parameters depending on your initial/final points as well the dimension of your space).

2) If the deformation is non-rigid then you won't have a pure-rotation, but some thing a lot more general and you will have to provide the relaxed constraints (i.e. det <> 1).

For finding the matrix given two points I recommend you find two orthogonal rotations in the way that one rotation transforms triangle so one point is positioned and then the next rotation axis is aligned with the vertex that has the proper position and the angle corresponds to rotating the other vertex into position.

The idea of this is that if you try and rotate a vertex around an axis that is parallel to the vertex itself, it won't change. Because you have two vertices, I think this idea is optimal for your situation.

If you need to know how to create axis-angle rotation matrices look here:

http://en.wikipedia.org/wiki/Rotation_matrix#Rotation_matrix_from_axis_and_angle
 
I assume you mean you've normalised each triangle to have a vertex at the origin.
If it's rigid there are only 3 degrees of freedom, and only the direction vectors are needed as inputs.
If it's non-rigid then there will be a subspace of possibilities. There will be 9 unknowns but only 6 equations. And that's assuming the association of the vertices of one to those of the other is given.
 
Suppose you want to rotate vector u1 to u2 and v1 to v2.
The axis of rotation is given by w where w.u1 = w.u2 and w.v1 = w.v2. w might as well be a unit vector, so that's two equations, two unknowns.
If w = (x, y, z), the matrix which rotates space an angle theta around w is (from http://www.fastgraph.com/makegames/3drotation/) R =
tx2+c txy-sz txz+sy
txy+sz ty2+c tyz-sx
txz-sy tyz+sx tz2+c
where c = cos(theta), s = sin(theta), t = 1-c.
It remains to determine theta from R u1 = u2.
 

Similar threads

  • · Replies 4 ·
Replies
4
Views
4K
Replies
1
Views
1K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 12 ·
Replies
12
Views
5K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 6 ·
Replies
6
Views
912
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 3 ·
Replies
3
Views
1K