If you're seeing this message, it means we're having trouble loading external resources on our website.

Wenn du hinter einem Webfilter bist, stelle sicher, dass die Domänen *. kastatic.org und *. kasandbox.org nicht blockiert sind.

Hauptinhalt

Mehr Vektormathematik

Die Addition war nur ein erster Schritt. Es gibt viele weitere mathematische Operationen, welche häufig mit Vektoren verwendet werden. Es folgt eine umfassende Liste der Operationen, welche das PVector-Objekt von ProcessingJS als Funktionen anbietet. Einige der wichtigsten davon schauen wir uns nun genauer an. Wenn unsere Beispielprogramme in späteren Abschnitten anspruchsvoller werden, wirst du weitere Funktionen kennen lernen.
  • add() — addiert ektoren
  • sub() — subtrahiert Vektoren
  • mult() — skaliert den Vektor durch Multiplikation
  • div() — skaliert den Vektor durch Division
  • mag() — berechnet die Länge eines Vektors
  • normalize() — normalisiert den Vektor zum Einheitsvektor der Länge 1
  • limit() — begrenzt die Länge eines Vektors
  • heading2D() — stellt den 2-dimensionalen Ortsvektor als Winkel dar
  • dist() — berechnet den euklidischen Abstand zwischen zwei Vektoren (welche hier als Punkte aufgefasst werden)
  • angleBetween() — gibt den Winkel zwischen zwei Vektoren an
  • dot() — berechnet das Skalarprodukt zweier Vektoren
  • cross() — berechnet im 3-dimensionalen Raum das Kreuzprodukt zweier Vektoren
Da wir uns die Addition schon angeschaut haben, beginnen wir gleich mit der Subtraktion. Diese ist relativ einfach, wir ersetzen einfach das Pluszeichen durch ein Minuszeichen.

Vektorsubtraktion

w=uv
auch geschrieben werden als:
wx=uxvx
wy=uyvy
daher sieht die Funktion in PVector folgendermassen aus:
PVector.prototype.sub = function(vector2) {
    this.x = this.x - vector2.x;
    this.y = this.y - vector2.y;
  };
Das folgende Beispiel veranschaulicht die Vektorsubtraktion indem es die Differenz zwischen zwei Punkten (der Mausposition und der Mitte des Canvas, berechnet).
Grundlegende Rechengesetze mit Vektoren
Wenn wir mit reellen Zahlen rechnen, folgen diese den grundlegenden Rechengesetzen:
Das Kommutativgesetz: 3+2=2+3
Das Assoziativgesetz: (3+2)+1=3+(2+1)
Die gleichen Rechengesetze gelten auch für Vektoren:
Das Kommutativgesetz: u+v=v+u
Das Assoziativgesetz: u+(v+w)=(u+v)+w

Vektormultiplikation

Wenn wir uns nun die Multiplikation anschauen, müssen wir etwas umdenken. Wenn wir einen Vektor multiplizieren, bedeutet dies, dass wir einen Vektor skalieren. Wenn wir einen Vektor auf das doppelte oder ein Drittel seiner Länge (seine Richtung bleibt dabei gleich) skalieren wollen, sagen wir: “Multipliziere den Vektor mit 2” oder “Multipliziere den Vektor mit 1/3.” Beachte, dass wir den Vektor mit einem Skalar, einer einfachen Zahl, und nicht mit einem Vektor multiplizieren.
Um eine Vektor zu skalieren, multiplizieren wir jede Komponente (x und y) mit einem Skalar.
w=un
kann geschrieben werden als:
wx=uxnwy=uyn
Einen Vektor skalieren
Schauen wir uns ein Beispiel in Vektornotation an.
u=(3,7)n=3w=unwx=33wy=73w=(9,21)
Daher kann die Funktion im PVector-Objekt folgendermaßen geschrieben werden:
PVector.prototype.mult = function(n) {
   this.x = this.x * n;
   this.y = this.y * n;
}
Und mult kann so einfach verwendet werden wie:
var u = new PVector(-3,7);
// Dieser PVector ist nun dreimal so lang und gleich (-9,21).
u.mult(3);
Hier das Beispiel von vorher, aber wir multiplizieren den Vektor jedesmal mit .0.5 und er wird somit halbiert:
Anstatt mit 0,5 zu multiplizieren könnten wir auch durch 2 dividieren. Die Division funktioniert wie die Multiplikation, wir ersetzen den Operator für die Multiplikation (Stern) einfach mit dem Operator für die Division (Schrägstrich).
Die Methode div ist folgendermaßen implementiert:
PVector.prototype.div = function(n) {
   this.x = this.x / n;
   this.y = this.y / n;
}
Und sie kann so im Code verwendet werden:
var u = new PVector(8, -4);
u.div(2);

Weitere Rechengesetze für Vektoren

Wie mit der Addition, gelten auch für die Multiplikation die algebraischen Rechengesetze für die Vektoren:
Das Assoziativgesetz: (nm)v=n(mv)
Das Distributivgesetz mit zwei Skalaren und einem Vektor: (n+m)v=nv+mv
Das Distributivgesetz mit zwei Vektoren und einem Skalar: (u+v)n=un+vn
Möchtest du das Rechnen mit Vektoren üben? Auf der Khan Academy kannst du in unserem Tutorial Lineare Algebra: Vektoren mehr dazu lernen.

Der Kurs "Natürliche Simulationen" ist eine Bearbeitung von "The Nature of Code" von Daniel Shiffman, und wird unter der Creative Commons Attribution-NonCommercial 3,0 Unported Lizenz verwendet.

Willst du an der Diskussion teilnehmen?

Noch keine Beiträge.
Verstehst du Englisch? Klick hier, um weitere Diskussionen auf der englischen Khan Academy Seite zu sehen.