LitDev 1.2.20.0 DE Extension API

LD3DView LDArray LDBits LDBlueTooth LDCall
LDChart LDClient LDClipboard LDColours LDCommPort
LDController LDControls LDCursors LDDataBase LDDateTime
LDDebug LDDialogs LDDictionary LDEffect LDEmail
LDEncryption LDEvents LDFastArray LDFastShapes LDFigures
LDFile LDFocus LDftp LDGraph LDGraphicsWindow
LDHID LDIcon LDImage LDInline LDIOWarrior
LDList LDLogic LDMath LDMathX LDMatrix
LDMusic LDNetwork LDPhysics LDProcess LDQueue
LDRegex LDResources LDScrollBars LDSearch LDServer
LDSettings LDShapes LDShell LDSort LDSound
LDSpeech LDStatistics LDStopwatch LDText LDTextWindow
LDTimer LDTranslate LDUnits LDUtilities LDVector
LDWaveForm LDWebCam LDWindows LDxml LDZip

LDVector
Algebraische 3D Vektormethoden (hilfreich für Berechnungen in 'LD3DView').
Alle Vektoren oder Punkte sind 3-element. Arrays der Form "1=x;2=y;3=z;".
Zur Verwendung als 2D Vektoren als "1=x;2=y;3=0;".

example http://de.wikipedia.org/wiki/Vektor

Add AngleBetween CrossProduct
DotProduct Length Multiply
Normalise Rotate RotatePoint
Subtract

Add(vector1,vector2)
Ermittelt die Summe zweier Vektoren.
vector1 Der erste Vektor.
vector2 Der zweite Vektor.
returns Der Summenvektor (Resultierende) bei Erfolg, sonst "".

AngleBetween(vector1,vector2)
Ermittelt den Winkel zwischen zwei Vektoren.
vector1 Der erste Vektor.
vector2 Der zweite Vektor.
returns Der Winkel (0 bis +180°) zwischen den beiden Vektoren bei Erfolg, sonst "".
example 'v zu Kugelkoord(r,theta,phi)
vT = v
vT[3] = 0 'tmp 2D [x,y,0]
vX = "1=1;2=0;3=0;"
vZ = "1=0;2=0;3=1;"

r = LDVector.Length(v)
theta = LDVector.AngleBetween(v,vZ)
phi = LDVector.AngleBetween(vT,vX)

'v zu Zylinderkoord(rho,phi,z)
rho = LDVector.Length(vT)
phi = LDVector.AngleBetween(vT,vX)
z = v[3]

'Atan2(x,y) [0°,+/-180°]
P = "1="+x+";2="+y+";3=0;"
x = "1=1;2=0;3=0;"
w = LDVector.AngleBetween(P,x) ' *sgn(y)
w = w * LDLogic.Switch(LDLogic.LT(y,0), -1,1)


CrossProduct(vector1,vector2)
Ermittelt das (äußere) Kreuz-/Vektorprodukt zweier 3D Vektoren (v1 x v2).
Dies ist der Normalvektor zur aufgespannten Vektorenebene, im Rechtssystem.
Für Betrag des Ergebnisvektors |v1 x v2| gilt:
|v1|*|v2| v1 -/+90° v2
<0 0-180°, Uhrzeigersinn
=0 v1||v2
>0 180-360°, Gegenuhrzeigersinn

vector1 Der erste Vektor.
vector2 Der zweite Vektor.
returns Der Ergebnisvektor (Nullvektor für parallele Vektoren) bei Erfolg, sonst "".
example http://de.wikipedia.org/wiki/Kreuzprodukt

DotProduct(vector1,vector2)
Ermittelt das (innere) Skalarprodukt zweier Vektoren, |v1|*|v2| * cos(AngleBetween) = x1*x2 + y1*y2 + z1*z2.
vector1 Der erste Vektor.
vector2 Der zweite Vektor.
returns Daer Wert für das Skalarprodukt bei Erfolg, sonst "".
<0 stumpfwinkelig
=0 rechtwinkelig
>0 spitzwinkelig
(-) |v1|*|v2| (entgegen) parallel

example http://de.wikipedia.org/wiki/Skalarprodukt

Length(vector)
Ermittelt die Länge/Betrag (|vector|) für einen Vektor.
vector Der Vektor.
returns Die Vektorlänge bei Erfolg, sonst "".
example |v| = Math.SquareRoot(v[1]*v[1] + v[2]*v[2] + v[3]*v[3])
'Kameradistanz zum Ursprung
dist = LDVector.Length(LD3DView.GetCameraPosition(view))


Multiply(vector,scalar)
Multipliziert einen Vektor komponentenweise mit einem Skalar.
Verlängert oder kürzt die Länge des Vektors um den angegebenen Faktor. Bei negativem Skalar wird auch die Richtung umgekehrt.

vector Der Vektor.
scalar Der skalare Faktor zur Längenänderung des Vektors.
returns Der skalierte Vektor bei Erfolg, sonst "".
example 'Vektor v zu Länge l skaliert
v = LDVector.Multiply(v, l/LDVector.Length(v))
v = LDVector.Multiply(LDVector.Normalise(v), l)


Normalise(vector)
Normalisiert einen Vektor zur Einheitslänge (gleiche Richtung).
vector Der Vektor.
returns Der skalierte Einheitsvektor (Länge = 1) bei Erfolg, sonst "".

Rotate(vector,about,angle)
Rotiert einen Vektor um eine Drehachse (als Richtungsvektor definiert).
vector Der zu drehende Vektor.
about Der Richtungsvektor der Drehachse um die gedreht wird.
angle Der Winkel [°] um den der Vektor gedreht wird.
returns Der rotierte Vektor bei Erfolg, sonst "".

RotatePoint(point,center,about,angle)
Rotiert einen Punkt um einen angegebenen Zentralpunkt und Richtung.
point Der zu drehende Punkt.
center Der Zentralpunkt um den gedreht wird.
about Der Richtungsvektor der Drehachse um die gedreht wird.
angle Der Winkel [°] um den der Punkt gedreht wird.
returns Der gedrehte Punkt bei Erfolg, sonst "".

Subtract(vector1,vector2)
Ermittelt die Differenz zweier Vektoren (Addition mit Gegenvektor von vector2).
vector1 Der erste Vektor.
vector2 Der zweite Vektor (zur Subtraktion von vector1).
returns Der Differenzvektor bei Erfolg, sonst "".
example dif = LDVector.Subtract(v1,v2)
dif = LDVector.Add(v1,LDVector.Multiply(v2,-1))