Es gibt neben JsgVect3 weitere Klassen, welche aus JsgVect3 Bestandteilen bestehen:
JsgVect3 Klasse | Stellt einen 3D-Vektor dar |
JsgVect3List Klasse | Stellt eine Liste von JsgVect3 Elementen dar |
JsgVect3Grid Klasse | Stellt ein Gitter (2-dimensionaler Array) von JsgVect3 Elementen dar |
Ein 3D-Vektor wird als Array der Grösse 3 dargestellt. Auf die einzelnen Komponenten des Vektors kann über ihren Index zugegriffen werden: x-Komponente = v[0] usw.
Anstelle der Funktionen wie JsgVect3.New() zum Erzeugen von JsgVect3 Objekten kann auch direkt ein Array [ x, y, z ] verwendet werden.
Hinweis: ein JsgVect3 Objekt kann auch als JsgVect2 Objekt bei entsprechenden Funktionen (z.B. Line()) verwendet werden.
JsgVect3.New() | Erzeugt ein JsgVect3 Objekt (3D-Vektor) |
JsgVect3.Null() | Erzeugt einen 3D Null-Vektor |
JsgVect3.Ok() | Testet, ob das Objekt vom Typ Array ist |
JsgVect3.Reset() | Setzt die Komponenten eines 3D-Vektors auf 0 |
JsgVect3.Set() | Setzt die Komponenten eines 3D-Vektors |
JsgVect3.Copy() | Kopiert einen Vektor |
JsgVect3.CopyTo() | Kopiert einen Vektor in einen anderen |
JsgVect3.FromAngle() | Erzeugt einen Vektor aus einem Winkel |
JsgVect3.Scale() | Gibt einen neuen skalierten Vektor zurück |
JsgVect3.ScaleTo() | Skaliert einen Vektor |
JsgVect3.Length2() | Berechnet die Länge eines Vektors im Quadrat |
JsgVect3.Length() | Berechnet die Länge eines Vektors |
JsgVect3.Norm() | Gibt einen neuen normierten Vektor zurück |
JsgVect3.NormTo() | Normiert einen Vektor |
JsgVect3.Add() | Gibt den Summen-Vektor zweier Vektoren zurück |
JsgVect3.AddTo() | Addiert einen Vektor zu einem anderen |
JsgVect3.Sub() | Gibt den Differenz-Vektor zweier Vektoren zurück |
JsgVect3.SubFrom() | Subtrahiert einen Vektor von einem anderen |
JsgVect3.ScalarProd() | Berechnet das Skalaprodukt zweier Vektoren |
JsgVect3.Mult() | Berechnet das Vektor-Produkt zweier Vektoren |
JsgVect3.MultTo() | Berechnet das Vektor-Produkt zweier Vektoren und speichert es in einem übergebenen Vektor |
JsgVect3.Angle() | Berechnet den Winkel zwischen zwei Vektoren |
Weitere Funktionen mit JsgVect3 Objekten:
JsgMat3.Trans() | Multipliziert einen JsgVect3 mit einer JsgMat3 Matrix und gibt das Resultat als neuen Vektor zurück |
JsgMat3.TransTo() | Multipliziert einen JsgVect3 mit einer JsgMat3 Matrix |
JsgCamera.Trans() | Viewing-Transformation eines JsgVect3 |
JsgPlane.PointOnPlane() | Transformiert einen 2D Punkt auf einer JsgPlane in einen JsgVect3 Vektor |
global JsgVect3.New( x, y, z )
Erzeugt ein JsgVect3 Objekt mit den angegeben Koordinaten. Ein JsgVect3 Objekt kann auch einfach als Array erzeugt werden:
var v = [ x, y, z ]; // = JsgVect3.New( x, y, z );
global JsgVect3.Null( )
Erzeugt einen JsgVect3 Objekt mit allen Koordinaten = 0, also einen Null-Vektor.
global JsgVect3.Ok( Object )
Gibt true zurück, wenn Object definiert ist und vom Typ JsgVect3 ist.
Ein Objekt ist vom Typ JsgVect3, wenn Object definiert ist und ein Array mit 3 Elementen ist.
Diese Funktion ist dazu gedacht, Fälle zu unterscheiden, falls eine Funktion verschiedene Argument-Typen akzeptiert.
function myFunc( arg ) { if (JsgVect3.Ok(arg)) { // handle arg as a JsgVect3 } else { // handle arg as something else } }
global JsgVect3.Reset( Vect )
Setzt alle Komponenten von Vect auf Null.
global JsgVect3.Set( Dest, x, y, z )
global JsgVect3.Set( Dest, Src )
Setzt die Komponenten von Dest auf die Werte x, y, und z, oder kopiert die Komponenten des Vektors Src in die Komponented dest Vektors Dest. Vergleiche auch mit der Funktion JsgVect3.CopyTo().
global JsgVect3.Copy( Src )
Gibt eine Kopie des Vektors Src zurück.
global JsgVect3.CopyTo( Src, Dest )
Kopiert den Vektors Src komponentenweise in den Vektor Dest. Dest darf nicht undefined sein und muss vom Type JsgVect3 sein. Vergleiche auch mit der Funktion JsgVect3.Set().
global JsgVect3.FromAngle( HAng, VAng, Dist )
Berechnet einen Vektor vom Type JsgVect3 der Länge aDist. Seine Richtung wird durch die beiden Winkel HAng und VAng festgelegt.
global JsgVect3.Scale( Vect, s )
Gibt einen neuen Vektor zurück, der aus Vect gebildet wird, indem seine Komponenten mit s multipliziert werden.
global JsgVect3.ScaleTo( Vect, s )
Multipliziert alle Komponenten von Vect mit der Zahl s. Der Vektor Vect wird somit verändert.
global JsgVect3.Length2( Vect )
Gibt das Quadrat der Länge des Vektors Vect zurück.
global JsgVect3.Length( Vect )
Gibt die Länge des Vektors Vect zurück.
global JsgVect3.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 JsgVect3.NormTo( Vect )
Verändert die Komponenten von Vect so, dass dessen Länge 1 wird. Ist Vect ein Null-Vektor, wird er nicht verändert.
global JsgVect3.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 JsgVect3 zurück.
global JsgVect3.AddTo( VectA, VectB )
Addiert alle Komponenten des Vektors VectB zum Vektor VectA. Der Vektor VectA wird somit verändert.
global JsgVect3.Sub( VectA, VectB )
Führt eine Vektor-Subtraktion VectA minus VectB aus und gibt als Resultat einen neuen Vektor vom Typ JsgVect3 zurück.
global JsgVect3.SubFrom( VectA, VectB )
Subtrahiert alle Komponenten des Vektors VectB vom Vektor VectA. Der Vektor VectA wird somit verändert.
global JsgVect3.ScalarProd( VectA, VectB )
Gibt das Skalarproduk der beiden Vektoren VectA und VectB zurück.
global JsgVect3.Mult( VectA, VectB )
Gibt das Vektorprodukt der beiden Vektoren VectA und VectB als neuen Vektor vom Typ JsgVect3 zurück.
global JsgVect3.MultTo( VectRet, VectA, VectB )
Berechnet das Vektorprodukt der beiden Vektoren VectA und VectA und speichert das Resultat komponentenweise im Vektor VectRet. Der Vektor VectRet wird somit verändert.
global JsgVect3.Angle( Vect1, Vect2 )
Berechnet den Winkel zwischen den zwei Vektoren. Die Vektoren müssen nicht normiert sein, sie werden von der Funktion normiert. Der berechnete Winkel wird in Bogenmass zurück gegeben und liegt im Bereich 0 bis Pi.