home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1987 / 07 / grafik / trans2d.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1987-05-04  |  2.1 KB  |  68 lines

  1. (*-------------------------------------------------------------------------*)
  2. (*                              TRANS2D.PAS                                *)
  3. (*       Grapikserie: Zweidimensionalen Transformation von Vektoren        *)
  4. (*         Routinen zur Manipulation von Transformations-Matrizen          *)
  5. (*-------------------------------------------------------------------------*)
  6. (*                              Verschiebung:                              *)
  7.  
  8. PROCEDURE Translation (VAR Matrix: tMatrix; delta_x, delta_y: REAL);
  9.  
  10. VAR Temp : tMatrix;
  11.  
  12. BEGIN
  13.   Einheitsmatrix(Temp);
  14.   Temp[3,1] := delta_x;
  15.   Temp[3,2] := delta_y;
  16.   MatMult(Matrix, Temp, Matrix);
  17. END;
  18.  
  19. (*-------------------------------------------------------------------------*)
  20. (*                                Drehung:                                 *)
  21.  
  22. PROCEDURE Rotation (VAR Matrix: tMatrix; Winkel: REAL);
  23.  
  24. CONST Pi_durch_180 = 17.453292e-3;
  25.  
  26. VAR   Temp: tMatrix;
  27.  
  28. BEGIN
  29.   Winkel := Winkel * Pi_durch_180;
  30.   Einheitsmatrix(Temp);
  31.   Temp[1,1] := Cos(Winkel);
  32.   Temp[1,2] := Sin(Winkel);
  33.   Temp[2,1] := -Sin(Winkel);
  34.   Temp[2,2] := Cos(Winkel);
  35.   MatMult(Matrix, Temp, Matrix);
  36. END;
  37.  
  38. (*-------------------------------------------------------------------------*)
  39. (*                              Skalieren:                                 *)
  40.  
  41. PROCEDURE Skalierung (VAR Matrix: tMatrix; x_Faktor, y_Faktor: REAL);
  42.  
  43. VAR Temp: tMatrix;
  44.  
  45. BEGIN
  46.   Einheitsmatrix(Temp);
  47.   Temp[1,1] := x_Faktor;
  48.   Temp[2,2] := y_Faktor;
  49.   MatMult(Matrix, Temp, Matrix);
  50. END;
  51.  
  52. (*-------------------------------------------------------------------------*)
  53. (*                         Scherung auf der y-Achse:                       *)
  54.  
  55. PROCEDURE Scherung (VAR Matrix: tMatrix; x_Shear, y_Shear: REAL);
  56.  
  57. VAR Temp: tMatrix;
  58.  
  59. BEGIN
  60.   Einheitsmatrix(Temp);
  61.   Temp[2,1] := x_Shear;
  62.   Temp[1,2] := y_Shear;
  63.   MatMult(Matrix, Temp, Matrix);
  64. END;
  65.  
  66. (*-------------------------------------------------------------------------*)
  67. (*                              Ende TRANS2D.PAS                           *)
  68.