1 package mhr.appcore.transform;
12 public TM(
double aa11,
double aa12,
double aa13,
double aa21,
double aa22,
double aa23,
double aa31,
double aa32,
double aa33) {
43 r.a11 = m1.a11 * m2.a11 + m1.a12 * m2.a21 + m1.a13 * m2.a31;
44 r.a12 = m1.a11 * m2.a12 + m1.a12 * m2.a22 + m1.a13 * m2.a32;
45 r.a13 = m1.a11 * m2.a13 + m1.a12 * m2.a23 + m1.a13 * m2.a33;
47 r.a21 = m1.a21 * m2.a11 + m1.a22 * m2.a21 + m1.a23 * m2.a31;
48 r.a22 = m1.a21 * m2.a12 + m1.a22 * m2.a22 + m1.a23 * m2.a32;
49 r.a23 = m1.a21 * m2.a13 + m1.a22 * m2.a23 + m1.a23 * m2.a33;
51 r.a31 = m1.a31 * m2.a11 + m1.a32 * m2.a21 + m1.a33 * m2.a31;
52 r.a32 = m1.a31 * m2.a12 + m1.a32 * m2.a22 + m1.a33 * m2.a32;
53 r.a33 = m1.a31 * m2.a13 + m1.a32 * m2.a23 + m1.a33 * m2.a33;
61 double factor = 1 / (m.a11 * (m.a22 * m.a33 - m.a23 * m.a32) - m.a12 * (m.a21 * m.a33 - m.a23 * m.a31) + m.a13 * (m.a21 * m.a32 - m.a22 * m.a31));
63 r.a11 = (m.a22 * m.a33 - m.a23 * m.a32) * factor;
64 r.a12 = (m.a13 * m.a32 - m.a12 * m.a33) * factor;
65 r.a13 = (m.a12 * m.a23 - m.a13 * m.a22) * factor;
67 r.a21 = (m.a23 * m.a31 - m.a21 * m.a33) * factor;
68 r.a22 = (m.a11 * m.a33 - m.a13 * m.a31) * factor;
69 r.a23 = (m.a13 * m.a21 - m.a11 * m.a23) * factor;
71 r.a31 = (m.a21 * m.a32 - m.a22 * m.a31) * factor;
72 r.a32 = (m.a12 * m.a31 - m.a11 * m.a32) * factor;
73 r.a33 = (m.a11 * m.a22 - m.a12 * m.a21) * factor;
98 StringBuilder sb =
new StringBuilder();
99 sb.append(a11); sb.append(
'\t');sb.append(a12); sb.append(
'\t');sb.append(a13); sb.append(
'\n');
100 sb.append(a21); sb.append(
'\t');sb.append(a22); sb.append(
'\t');sb.append(a23); sb.append(
'\n');
101 sb.append(a31); sb.append(
'\t');sb.append(a32); sb.append(
'\t');sb.append(a33); sb.append(
'\n');
102 return sb.toString();