示例#1
0
 public override void Loaded()
 {
     matrix = new DXFMatrix();
     matrix = DXFMatrix.MatXMat(matrix, DXFMatrix.StdMat(new SFPoint(1, 1, 1), Point1));
 }
示例#2
0
 public static DXFMatrix StdMat(SFPoint S, SFPoint P)
 {
     DXFMatrix Result = new DXFMatrix();
     Result.data[0, 0] = S.X;
     Result.data[1, 1] = S.Y;
     Result.data[2, 2] = S.Z;
     DXFMatrix.MatOffset(Result, P);
     return Result;
 }
示例#3
0
 private static void MatOffset(DXFMatrix M, SFPoint P)
 {
     M.data[3, 0] = P.X;
     M.data[3, 1] = P.Y;
     M.data[3, 2] = P.Z;
 }
示例#4
0
 public static DXFMatrix MatXMat(DXFMatrix A, DXFMatrix B)
 {
     int I, J;
     DXFMatrix Result = new DXFMatrix();
     for (I = 0; I < 4; I++)
     {
         for (J = 0; J < 3; J++)
             Result.data[I, J] = A.data[I, 0] * B.data[0, J] + A.data[I, 1] * B.data[1, J] +
                 A.data[I, 2] * B.data[2, J];
     }
     for (J = 0; J < 3; J++)
         Result.data[3, J] = Result.data[3, J] + B.data[3, J];
     return Result;
 }