home *** CD-ROM | disk | FTP | other *** search
- (*------------------------------------------------------------*)
- (* TRANSMA2.PAS *)
- (* Zweiter Satz Routinen fuer Matrizen-/Vektor-Handling *)
- (* in der Grafikserie *)
- (*------------------------------------------------------------*)
- (* Punktprodukt zweier Vektoren berechnen *)
- FUNCTION PunktProd(P1, P2 : tVektor) : REAL;
- BEGIN
- PunktProd := P1[1]*P2[1] + P1[2]*P2[2] + P1[3]*P2[3];
- END;
- (*------------------------------------------------------------*)
- (* Kreuzprodukt zweier Vektoren berechnen *)
- PROCEDURE KreuzProd(P1, P2 : tVektor; VAR Res : tVektor);
- BEGIN
- Res[1] := P1[2]*P2[3] - P1[3]*P2[2];
- Res[2] := P1[3]*P2[1] - P1[1]*P2[3];
- Res[3] := P1[1]*P2[2] - P1[2]*P2[1];
- Res[4] := 1.0;
- END;
- (*------------------------------------------------------------*)
- (* Vektor auf 1 normalisieren *)
- PROCEDURE NormalVek(VAR P : tVektor);
-
- VAR Laenge : REAL;
-
- BEGIN
- Laenge := Sqrt(PunktProd(P,P));
- P[1] := P[1]/Laenge;
- P[2] := P[2]/Laenge;
- P[3] := P[3]/Laenge;
- END;
- (*------------------------------------------------------------*)
- (* Vektoren voneinander subtrahieren *)
- PROCEDURE SubVek(P1,P2 : tVektor; VAR Res : tVektor);
-
- BEGIN
- Res[1] := P1[1] - P2[1];
- Res[2] := P1[2] - P2[2];
- Res[3] := P1[3] - P2[3];
- Res[4] := 1;
- END;
- (*------------------------------------------------------------*)
- (* Ende TRANSMA2.PAS *)
-
-