home *** CD-ROM | disk | FTP | other *** search
- (*-------------------------------------------------------------------------*)
- (* TRANS2D.PAS *)
- (* Grapikserie: Zweidimensionalen Transformation von Vektoren *)
- (* Routinen zur Manipulation von Transformations-Matrizen *)
- (*-------------------------------------------------------------------------*)
- (* Verschiebung: *)
-
- PROCEDURE Translation (VAR Matrix: tMatrix; delta_x, delta_y: REAL);
-
- VAR Temp : tMatrix;
-
- BEGIN
- Einheitsmatrix(Temp);
- Temp[3,1] := delta_x;
- Temp[3,2] := delta_y;
- MatMult(Matrix, Temp, Matrix);
- END;
-
- (*-------------------------------------------------------------------------*)
- (* Drehung: *)
-
- PROCEDURE Rotation (VAR Matrix: tMatrix; Winkel: REAL);
-
- CONST Pi_durch_180 = 17.453292e-3;
-
- VAR Temp: tMatrix;
-
- BEGIN
- Winkel := Winkel * Pi_durch_180;
- Einheitsmatrix(Temp);
- Temp[1,1] := Cos(Winkel);
- Temp[1,2] := Sin(Winkel);
- Temp[2,1] := -Sin(Winkel);
- Temp[2,2] := Cos(Winkel);
- MatMult(Matrix, Temp, Matrix);
- END;
-
- (*-------------------------------------------------------------------------*)
- (* Skalieren: *)
-
- PROCEDURE Skalierung (VAR Matrix: tMatrix; x_Faktor, y_Faktor: REAL);
-
- VAR Temp: tMatrix;
-
- BEGIN
- Einheitsmatrix(Temp);
- Temp[1,1] := x_Faktor;
- Temp[2,2] := y_Faktor;
- MatMult(Matrix, Temp, Matrix);
- END;
-
- (*-------------------------------------------------------------------------*)
- (* Scherung auf der y-Achse: *)
-
- PROCEDURE Scherung (VAR Matrix: tMatrix; x_Shear, y_Shear: REAL);
-
- VAR Temp: tMatrix;
-
- BEGIN
- Einheitsmatrix(Temp);
- Temp[2,1] := x_Shear;
- Temp[1,2] := y_Shear;
- MatMult(Matrix, Temp, Matrix);
- END;
-
- (*-------------------------------------------------------------------------*)
- (* Ende TRANS2D.PAS *)
-