|
|
|
@@ -194,6 +194,7 @@ type |
|
|
|
function gluVectorScalar(const v1, v2: TgluVector2f): Single; overload; |
|
|
|
function gluVectorAngle(const v1, v2: TgluVector3f): Single; overload; |
|
|
|
function gluVectorAngle(const v1, v2: TgluVector2f): Single; overload; |
|
|
|
function gluVectorAngle2(const v1, v2: TgluVector2f): Single; |
|
|
|
function gluVectorEquals(const v1, v2: TgluVector2f): Boolean; overload; |
|
|
|
function gluVectorEquals(const v1, v2: TgluVector3f): Boolean; overload; |
|
|
|
function gluVectorEquals(const v1, v2: TgluVector4f): Boolean; overload; |
|
|
|
@@ -699,12 +700,24 @@ end; |
|
|
|
//Berechnet den Winkel zwischen den übergebenen Vectoren |
|
|
|
//@v1: 1. vektor; |
|
|
|
//@v2: 2. Vektor; |
|
|
|
//@result: Winkel zwischen v1 und v2; |
|
|
|
//@result: Winkel zwischen v1 und v2 im Bereich: (0°; 180°); |
|
|
|
function gluVectorAngle(const v1, v2: TgluVector2f): Single; |
|
|
|
begin |
|
|
|
result := ArcCos(gluVectorScalar(v1, v2)/(gluVectorLength(v1)*gluVectorLength(v2))); |
|
|
|
end; |
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
|
//Berechnet den Winkel zwischen den übergebenen Vectoren |
|
|
|
//@v1: 1. vektor; |
|
|
|
//@v2: 2. Vektor; |
|
|
|
//@result: Winkel zwischen v1 und v2 im Bereich: [-180°; 180°) ; |
|
|
|
function gluVectorAngle2(const v1, v2: TgluVector2f): Single; |
|
|
|
begin |
|
|
|
result := arctan2( |
|
|
|
v2[0] * v1[1] - v2[1] * v1[0], |
|
|
|
v2[0] * v1[0] + v2[1] * v1[1]); |
|
|
|
end; |
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
|
function gluVectorEquals(const v1, v2: TgluVector2f): Boolean; |
|
|
|
begin |
|
|
|
|