WaBis

walter.bislins.ch

JSGX3D: JsgVect3

JsgVect3 Klassen

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

JsgVect3 Klasse

JsgVect3 = Array[3] of Number = [ x, y, z ]

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 Funktionen

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

JsgVect3.New()

global JsgVect3.New( x, y, z )

x, y, z: Number
Komponenten des Vektors in 3D-Weltkoordinaten
Return: JsgVect3

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 );

JsgVect3.Null()

global JsgVect3.Null( )

Return: JsgVect3

Erzeugt einen JsgVect3 Objekt mit allen Koordinaten = 0, also einen Null-Vektor.

JsgVect3.Ok()

global JsgVect3.Ok( Object )

Object: any or undefined
Return: Boolean

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
  }
}

JsgVect3.Reset()

global JsgVect3.Reset( Vect )

Vect: JsgVect3
Zu ändernder Vektor
Return: Vect

Setzt alle Komponenten von Vect auf Null.

JsgVect3.Set()

global JsgVect3.Set( Vect, x, y, z )

Vect: JsgVect3
Zu ändernder Vektor
x, y, z: Number
Komponenten des Vektors in 3D Weltkoordinaten
Return: Vect

Setzt die Komponenten von Vect auf die Werte x, y, und z.

JsgVect3.Copy()

global JsgVect3.Copy( Src )

Src: JsgVect3
Zu kopierender Vektor
Return: JsgVect3
Kopie des Vektors src

Gibt eine Kopie des Vektors Src zurück.

JsgVect3.CopyTo()

global JsgVect3.CopyTo( Src, Dest )

Src: JsgVect3
Zu kopierender Vektor
Dest: JsgVect3
Die Komponenten von src werden in diesen Vektor kopiert
Return: Dest

Kopiert den Vektors Src komponentenweise in den Vektor Dest. Dest darf nicht undefined sein und muss vom Type JsgVect3 sein.

JsgVect3.FromAngle()

global JsgVect3.FromAngle( HAng, VAng, Dist )

HAng: Number
Horizontaler Winkel, gemessen in der XY-Ebene von der X-Achse zur Y-Achse in Grad.
VAng: Number
Vertikaler Winkel, gemessen von der XY-Ebene zur Z-Achse in Grad.
Dist: Number
Distanz vom Ursprung zur Spitze des berechneten Vektors.
Return: JsgVect3
neuer Vektor

Berechnet einen Vektor vom Type JsgVect3 der Länge aDist. Seine Richtung wird durch die beiden Winkel HAng und VAng festgelegt.

JsgVect3.Scale()

global JsgVect3.Scale( Vect, s )

Vect: JsgVect3
Ursprungs-Vektor
s: Number
Skalierungsfaktor
Return: JsgVect3
neuer skalierter Vektor

Gibt einen neuen Vektor zurück, der aus Vect gebildet wird, indem seine Komponenten mit s multipliziert werden.

JsgVect3.ScaleTo()

global JsgVect3.ScaleTo( Vect, s )

vect: JsgVect3
Vektor, der skaliert werden soll
s: Number
Skalierungsfaktor
Return: Vect

Multipliziert alle Komponenten von Vect mit der Zahl s. Der Vektor Vect wird somit verändert.

JsgVect3.Length2()

global JsgVect3.Length2( Vect )

Vect: JsgVect3
Return: Number(>=0)

Gibt das Quadrat der Länge des Vektors Vect zurück.

JsgVect3.Length()

global JsgVect3.Length( Vect )

Vect: JsgVect3
Return: Number(>=0)

Gibt die Länge des Vektors Vect zurück.

JsgVect3.Norm()

global JsgVect3.Norm( Vect )

Vect: JsgVect3
Return: JsgVect3

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.

JsgVect3.NormTo()

global JsgVect3.NormTo( Vect )

Vect: JsgVect3
Zu normierender Vektor
Return: Vect

Verändert die Komponenten von Vect so, dass dessen Länge 1 wird. Ist Vect ein Null-Vektor, wird er nicht verändert.

JsgVect3.Add()

global JsgVect3.Add( VectA, VectB )

VectA, VectB: JsgVect3
Return: JsgVect3

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.

JsgVect3.AddTo()

global JsgVect3.AddTo( VectA, VectB )

VectA, VectB: JsgVect3
Return: VectA

Addiert alle Komponenten des Vektors VectB zum Vektor VectA. Der Vektor VectA wird somit verändert.

JsgVect3.Sub()

global JsgVect3.Sub( VectA, VectB )

VectA, VectB: JsgVect3
Return: JsgVect3

Führt eine Vektor-Subtraktion VectA minus VectB aus und gibt als Resultat einen neuen Vektor vom Typ JsgVect3 zurück.

JsgVect3.SubFrom()

global JsgVect3.SubFrom( VectA, VectB )

VectA, VectB: JsgVect3
Return: VectA

Subtrahiert alle Komponenten des Vektors VectB vom Vektor VectA. Der Vektor VectA wird somit verändert.

JsgVect3.ScalarProd()

global JsgVect3.ScalarProd( VectA, VectB )

VectA, VectB: JsgVect3
Return: Number

Gibt das Skalarproduk der beiden Vektoren VectA und VectB zurück.

JsgVect3.Mult()

global JsgVect3.Mult( VectA, VectB )

VectA, VectB: JsgVect3
Return: JsgVect3

Gibt das Vektorprodukt der beiden Vektoren VectA und VectB als neuen Vektor vom Typ JsgVect3 zurück.

JsgVect3.MultTo()

global JsgVect3.MultTo( VectRet, VectA, VectB )

VectRet: JsgVect3
Vektor, dessen Komponenten geändert werden
VectA, VectB: JsgVect3
Zu multiplizierende Vektoren
Return: VectRet

Berechnet das Vektorprodukt der beiden Vektoren VectA und VectA und speichert das Resultat komponentenweise im Vektor VectRet. Der Vektor VectRet wird somit verändert.

JsgVect3.Angle()

global JsgVect3.Angle( Vect1, Vect2 )

Vect1, Vect2: JsgVect3
Vektoren
Return: number

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.

Weitere Infos zur Seite
Erzeugt Montag, 15. Februar 2016
von wabis
Zum Seitenanfang
Geändert Freitag, 4. Januar 2019
von wabis