affine_map_tetra.txt map a tetrahedron with vertices 0,0,0 1,0,0 0,1,0 0,0,1 onto a tetrahedron with vertices x1,y1,z1 x2,y2,z2 x3,y3,z3 x4,y4,z4 map a,b,c to x,y,z x2,y2,z2 o * * ***o x3,y3,z3 * **** x1,y2,z1 o**** ** ** **o x4,y4,z5 c 0,0,1 o * 0,1,0 * b * ** * ** * ** * ** 0,0,0 o***********o a 1,0,0 x = c0 + c1*a + c2 *b + c3 *c y = c4 + c5*a + c6 *b + c7 *c z = c8 + c9*a + c10*b + c11*c x1 = c0 + c1*0 + c2 *0 + c3 *0 thus c0 = x1 y1 = c4 + c5*0 + c6 *0 + c7 *0 thus c3 = y1 z1 = c8 + c9*0 + c10*0 + c11*0 thus c8 = z1 x2 = x1 + c1*1 + c2 *0 + c3 *0 thus c1 = x2-x1 y2 = y1 + c5*1 + c6 *0 + c7 *0 thus c5 = y2-y1 z2 = z1 + c9*1 + c10*0 + c11*0 thus c9 = z2-z1 x3 = x1 + (x2-x1)*0 + c2 *1 + c3 *0 thus c2 = x3-x1 y3 = y1 + (y2-y1)*0 + c6 *1 + c7 *0 thus c6 = y3-y1 z3 = z1 + (z2-z1)*0 + c10*1 + c11*0 thus c10 = z3-z1 x4 = x1 + (x2-x1)*0 + (x3-x1)*0 + c3 *1 thus c3 = x4-x1 y4 = y1 + (y2-y1)*0 + (y3-y1)*0 + c7 *1 thus c7 = y4-y1 z4 = z1 + (z2-z1)*0 + (z3-z1)*0 + c11*1 thus c11 = z4-z1 thus the mapping from a,b,c to x,y,z is: x = x1 + (x2-x1)*a + (x3-x1)*a + (x4-x1)*a y = y1 + (y2-y1)*b + (y3-y1)*b + (y4-y1)*b z = z1 + (z2-z1)*c + (z3-z1)*c + (z4-z1)*c This mapping: does not preserve area, does not preserve angle, is a full covering rewriting the mapping in matrix form: |(x2-x1) (x3-x1) (x4-x1)| * |a| = |(x-x1)| |(y2-y1) (y3-y1) (y4-y1)| * |b| = |(y-y1)| |(z2-z1) (z3-z1) (z4-z1)| * |c| = |(z-z1)| solving the simultaneous equations for a,b,c gives the inverse mapping.