Aus Oxoscript wird NanoPy - mehr Infos

Vector-Funktionen

vector.normalize

  vector.normalize()

Klasse: vector

Normalisiert den Vektor. Dies bedeutet, dass nach dem Aufruf die Vektorlänge 1 ist.

v = vector(x=5,y=10)
v.normalize()

vector.add

  vector.add(v:vector)

Klasse: vector

Addiert den Vektor v zum Vektor

v1 = vector(x=4,y=8)
v2 = vector(x=3.5,y=1.8)
v1.add(v2)

vector.sub

  vector.sub(v:vector)

Klasse: vector

Subtrahiert den Vektor v vom Vektor

v1 = vector(x=4,y=8)
v2 = vector(x=3.5,y=1.8)
v1.sub(v2)

vector.addScalar

  vector.addScalar(s:float)

Klasse: vector

Addiert den Wert s zu je zu den x- und y-Werten des Vektors (Skalar-Addition)

v1 = vector(x=4,y=8)
v1.addScalar(10)

vector.subScalar

  vector.subScalar(s:float)

Klasse: vector

Subtrahiert den Wert s zu je von den x- und y-Werten des Vektors (Skalar-Subtraktion)

v1 = vector(x=4,y=8)
v1.subScalar(10)

vector.mulScalar

  vector.mulScalar(s:float)

Klasse: vector

Multipliziert den Wert s je mit den x- und y-Werten des Vektors (Skalar-Multiplikation)

v1 = vector(x=4,y=8)
v1.mulScalar(10)

vector.fromAngle

  vector.fromAngle(angle:float)

Klasse: vector

Erzeugt einen normalisierten Vektor mit der Richtung angle in Radiant.

Das folgende Beispiel zeichnet 12 Kreise u einen Kreis.
2*PI ist der Kreisumfang im Einheitskreis. Diesen teilen wir in 12 Teile und initialisieren damit den die Vektorrichtung. Mit mulScalar(..) verändern wir dann die Länge des Vektors, welche dem Radius des Kreises entspricht.

for i in 12:
    f = PI/6*i
    v:vector
    v.fromAngle(f)
    v.mulScalar(80)
    drawCircle(120+v.x,120+v.y,5)
update()

vector.random

  vector.random()

Klasse: vector

Erzeugt einen zufälligen Richtungsvektor mit Länge 1.

Das folgende Beispiel zeichnet 3000 zufällige Vektoren mit jeweils einer zufälligen Länge zwischen 0 und 100 Pixel und einer unterschiedlichenn Helligkeit.

for i in 3000:
    v:vector
    v.random()
    v.mulScalar(random(0,100))
    strokeHSV(110,255,random(0,255))
    drawLine(120,120,120+v.x,120+v.y)
update()

vector.magnitude

  vector.magnitude()->float

Klasse: vector

Berechnet die Länge des Vektors.

vector.distance

  vector.distance(v:vector)->float

Klasse: vector

Berechnet die Distanz zwischen zwei Vektoren.

vector.angle

  vector.angle()->float

Klasse: vector

Liefert den Winkel in Radiant des Vektors.

vector.dot

  vector.dot(v:vector)->float

Klasse: vector

Berechnet das Skalarprodukt des Vektors mit dem übergebenen Vektor v.

vector.limitToScreen

  vector.limitToScreen(offset:int)

Klasse: vector

Limitiert den Vektor an den sichtbaren Bildschirmbereich (0… 239).
Wahlweise kann ein Offset grösser als 0 gewählt werden um den sichtbaren Bereich zu verkleinern.

v = vector(x=-5,y=250)
v.limitToScreen(0)
v.x # => 0
v.y # => 239
v.limitToScreen(5)
v.x # => 5
v.y # => 234

vector.limit

  vector.limit(xMin:float, xMax:float, yMin:float, yMax:float)

Klasse: vector

Limitiert den Vektor an den definierten Bereich (xMin… xMax & yMin… yMax).

vector.toString

  vector.toString()->byte[30]

Klasse: vector

Wandelt einen Vektor in einen String um.

v = vector(x=24,y=32)
v.toString() # => "[24.000000:32.000000]"

vector3D.normalize

  vector3D.normalize()

Klasse: vector3D

Normalisiert den 3D-Vektor. Dies bedeutet, dass nach dem Aufruf die Vektorlänge 1 ist.

v = vector3D(x=5,y=10,z=3)
v.normalize()

vector3D.add

  vector3D.add(v:vector3D)

Klasse: vector3D

Addiert den 3D-Vektor v zum 3D-Vektor.

v1 = vector3D(x=4,y=8,z=2)
v2 = vector3D(x=3.5,y=1.8,z=1.1)
v1.add(v2)

vector3D.sub

  vector3D.sub(v:vector3D)

Klasse: vector3D

Subtrahiert den 3D-Vektor v vom 3D-Vektor

v1 = vector3D(x=4,y=8,z=2)
v2 = vector3D(x=3.5,y=1.8,z=1.1)
v1.sub(v2)

vector3D.addScalar

  vector3D.addScalar(s:float)

Klasse: vector3D

Addiert den Wert s zu den x-, y- und z-Werten des 3D-Vektors (Skalar-Addition)

v1 = vector3D(x=4,y=8,z=2)
v1.addScalar(10)

vector3D.subScalar

  vector3D.subScalar(s:float)

Klasse: vector3D

Subtrahiert den Wert s von den x-, y- und z-Werten des 3D-Vektors (Skalar-Subtraktion)

v1 = vector3D(x=4,y=8,z=2)
v1.subScalar(10)

vector3D.mulScalar

  vector3D.mulScalar(s:float)

Klasse: vector3D

Multipliziert den Wert s mit den x-, y- und z-Werten des 3D-Vektors (Skalar-Multiplikation)

v1 = vector(x=4,y=8,z=2)
v1.mulScalar(10)

vector3D.fromAngle

  vector3D.fromAngle(alpha:float, theta:float)

Klasse: vector3D

Erzeugt einen normalisierten 3D-Vektor mit der Richtung alpha und theta in Radiant.

vector3D.random

  vector3D.random()

Klasse: vector3D

Erzeugt einen zufälligen 3D-Richtungsvektor mit Länge 1.

vector3D.magnitude

  vector3D.magnitude()->float

Klasse: vector3D

Berechnet die Länge des 3D-Vektors.

vector3D.distance

  vector3D.distance(v:vector3D)->float

Klasse: vector3D

Berechnet die Distanz zwischen zwei 3D-Vektoren.

vector3D.dot

  vector3D.dot(v:vector3D)->float

Klasse: vector3D

Berechnet das Skalarprodukt des 3D-Vektors mit dem übergebenen 3D-Vektor v.

vector3D.cross

  vector3D.cross(v:vector3D)->vector3D

Klasse: vector3D

Berechnet das Kreuzprodukt des 3D-Vektors mit dem übergebenen 3D-Vektor v.
Das Resultat bei einem Kreuzprodukt ist ein neuer 3D-Vektor.

vector3D.toString

  vector3D.toString()->byte[40]

Klasse: vector3D

Wandelt einen 3D-Vektor in einen String um.

v = vector3D(x=24,y=32,z=11)
v.toString() # => "[24.000000:32.000000:11.000000]"