Ein 2D-Vektor wird als Array der Grösse 2 dargestellt. Auf die einzelnen Komponenten des Vektors kann über ihren Index zugegriffen werden: x-Komponente = v[0] usw.
Anstelle der Funktionen wie JsgVect2.New() zum Erzeugen von JsgVect2 Objekten kann auch direkt ein Array [ x, y ] verwendet werden.
JsgVect2 Objekte können mit JsgMat2 und JsgMat2 Matrizen transformiert werden.
| JsgVect2.New() | Erzeugt ein JsgVect2 Objekt (2D-Vektor) |
| JsgVect2.Set() | Ändert die Koordinaten eines bestehenden Vektors |
| JsgVect2.Null() | Erzeugt einen 3D Null-Vektor |
| JsgVect2.Ok() | Testet, ob das Objekt vom Typ Array ist |
| JsgVect2.Copy() | Erzeugt eine Kopie des Vektors |
| JsgVect2.CopyTo() | Erzeugt eine Kopie des Vektors |
| JsgVect2.Scale() | Gibt einen neuen skalierten Vektor zurück |
| JsgVect2.Add() | Gibt den Summen-Vektor zweier Vektoren zurück |
| JsgVect2.Sub() | Gibt den Differenz-Vektor zweier Vektoren zurück |
| JsgVect2.Length2() | Berechnet die Länge eines Vektors im Quadrat |
| JsgVect2.Length() | Berechnet die Länge eines Vektors |
| JsgVect2.Norm() | Gibt einen neuen normierten Vektor zurück |
| JsgVect2.ScalarProd() | Berechnet das Skalaprodukt zweier Vektoren |
| JsgVect2.VectProd() | Berechnet den Betrag des Vecktorproduktes zweier Vektoren |
| JsgVect2.Rotate() | Rotiert einen Vektor um einen Winkel |
| JsgVect2.Angle() | Berechnet den Winkel zwischen zwei Vektoren |
global JsgVect2.New( x, y )
Erzeugt ein JsgVect2 Objekt mit den angegeben Koordinaten. Ein JsgVect2 Objekt kann auch einfach als Array erzeugt werden:
var v = [ x, y ]; // = JsgVect2.New( x, y );
global JsgVect2.Set( v, x, y )
global JsgVect2.Set( v, src )
Ändert die Koordinaten des Vektors v zu x/y beziehungsweise src.
global JsgVect2.Copy( src )
Erzeugt einen neuen Vektor aus den Komponenten des src Vektors.
global JsgVect2.CopyTo( src, dest )
Kopiert die Koordinaten des Vektors src in die Koordinates des Vektors dest. Vergleiche auch mit der Funktion JsgVect2.Set().
global JsgVect2.Null( )
Erzeugt einen JsgVect2 Objekt mit allen Koordinaten = 0, also einen Null-Vektor.
global JsgVect2.Ok( Any )
Diese Funktion kann dazu verwendet werden, um zu prüfen, ob eine Variable oder ein Funktions-Parameter definiert ist und allenfalls vom Typ JsgVect2 ist. Letzteres wird aus Performacegründen nicht komplett getestet. So wird nur geschaut, ob es sich um einen beliebigen Array handelt.
Die Funktion Ok ist wiefolgt implementiert:
function JsgVect2.Ok( Any ) {
return xArray(Any);
}
global JsgVect2.Scale( Vect, s )
Gibt einen neuen Vektor zurück, der aus Vect gebildet wird, indem seine Komponenten mit s multipliziert werden.
global JsgVect2.Add( VectA, VectB )
Führt eine Vektor-Addition mit den beiden Vektoren VectA und VectB aus und gibt als Resultat einen neuen Vektor vom Type JsgVect2 zurück.
global JsgVect2.Sub( VectA, VectB )
Führt eine Vektor-Subtraktion VectA minus VectB aus und gibt als Resultat einen neuen Vektor vom Typ JsgVect2 zurück.
global JsgVect2.Length2( Vect )
Gibt das Quadrat der Länge des Vektors Vect zurück.
global JsgVect2.Length( Vect )
Gibt die Länge des Vektors Vect zurück.
global JsgVect2.Norm( Vect )
Erzeugt aus Vect einen neuen Vektor, der die selbe Richtung aber die Länge 1 hat. Wenn Vect der Null-Vektor ist (seine Länge ist 0), so wird ein neuer Null-Vektor zurückgegeben.
global JsgVect2.ScalarProd( VectA, VectB )
Gibt das Skalarproduk der beiden Vektoren VectA und VectB zurück.
global JsgVect2.VectProd( VectA, VectB )
Gibt den Betrag des Vektorproduktes der beiden Vektoren VectA und VectB zurück.
Der Betrag des Vektorproduktes berechnet sich nach der Formel:
s = VectA[0] * VectB[1] - VectA[1] * VectB[0]
Dies entspricht dem Skalarprodukt des Vektors VectA mit dem um 90 Grad im Gegenuhrzeigersinn gedrehten Vektors VectB.
global JsgVect2.Rotate( Vect, Angle )
Kopiert den Vektor Vect und rotiert die Kopie um den Winkel Angle. Die rotierte Kopie wird zurückgegeben. Angle muss in Radian angegeben werden. Positive Werte rotieren gegen den Uhrzeigersinn.
global JsgVect2.Angle( VectA, VectB )
Gibt den Winkel zwischen den zwei Vektoren VectA und VectB in Radian zurück. Die beiden Vektoren müssen Normiert sein, siehe JsgVect2.Norm(). Der Winkel wird vom Vektor VectA aus zum Vektor VectB gemessen. Positive Werte bedeuten eine Rotation im Gegenuhrzeigersinn. Der berechnete Winkel hat einen Wertebereich von −π < ω ≤ π.