home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1987 / 11 / grafik8 / transma2.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1987-09-04  |  1.6 KB  |  45 lines

  1. (*------------------------------------------------------------*)
  2. (*                      TRANSMA2.PAS                          *)
  3. (*   Zweiter Satz Routinen fuer Matrizen-/Vektor-Handling     *)
  4. (*                   in der Grafikserie                       *)
  5. (*------------------------------------------------------------*)
  6. (*           Punktprodukt zweier Vektoren berechnen           *)
  7. FUNCTION PunktProd(P1, P2 : tVektor) : REAL;
  8. BEGIN
  9.   PunktProd :=  P1[1]*P2[1] + P1[2]*P2[2] + P1[3]*P2[3];
  10. END;
  11. (*------------------------------------------------------------*)
  12. (*           Kreuzprodukt zweier Vektoren berechnen           *)
  13. PROCEDURE KreuzProd(P1, P2 : tVektor; VAR Res : tVektor);
  14. BEGIN
  15.   Res[1] := P1[2]*P2[3] - P1[3]*P2[2];
  16.   Res[2] := P1[3]*P2[1] - P1[1]*P2[3];
  17.   Res[3] := P1[1]*P2[2] - P1[2]*P2[1];
  18.   Res[4] := 1.0;
  19. END;
  20. (*------------------------------------------------------------*)
  21. (*               Vektor auf 1 normalisieren                   *)
  22. PROCEDURE NormalVek(VAR P : tVektor);
  23.  
  24. VAR Laenge : REAL;
  25.  
  26. BEGIN
  27.   Laenge := Sqrt(PunktProd(P,P));
  28.   P[1] := P[1]/Laenge;
  29.   P[2] := P[2]/Laenge;
  30.   P[3] := P[3]/Laenge;
  31. END;
  32. (*------------------------------------------------------------*)
  33. (*           Vektoren voneinander subtrahieren                *)
  34. PROCEDURE SubVek(P1,P2 : tVektor; VAR Res : tVektor);
  35.  
  36. BEGIN
  37.   Res[1] := P1[1] - P2[1];
  38.   Res[2] := P1[2] - P2[2];
  39.   Res[3] := P1[3] - P2[3];
  40.   Res[4] := 1;
  41. END;
  42. (*------------------------------------------------------------*)
  43. (*                    Ende TRANSMA2.PAS                       *)
  44.  
  45.