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

Jeżeli jesteś za filtrem sieci web, prosimy, upewnij się, że domeny *.kastatic.org i *.kasandbox.org są odblokowane.

Główna zawartość

Więcej matematyki wektorowej

Dodawanie tak naprawdę było dopiero pierwszym krokiem. Jest wiele działań matematycznych, które są często używane z wektorami. Poniżej znajduje się kompletna lista działań dostępnych jako funkcje w obiekcie PVector z ProcessingJS. Przejdziemy teraz przez kilka kluczowych. Ponieważ w kolejnych rozdziałach nasze przykłady staną się bardziej wymyślne, ujawnimy szczegóły większej liczby funkcji.
  • add() — dodawanie wektorów
  • sub() — odejmowanie wektorów
  • mult() — mnożenie wektora przez skalar
  • div() — dzielenie wektora przez skalar
  • mag() — obliczanie długości wektora
  • normalize() — zwraca wektor jednostkowy, o długości równej 1
  • limit() — ogranicza długość wektora
  • heading2D() — zwraca kąt, pomiędzy wektorem a osią X, w dwóch wymiarach
  • dist() — odległość pomiędzy dwoma punktami w przestrzeni (o współrzędnych równych współrzędnym dwóch wektorów)
  • angleBetween() — kąt pomiędzy dwoma wektorami
  • dot() — iloczyn skalarny dwóch wektorów
  • cross() — iloczyn wektorowy dwóch wektorów (w trzech wymiarach)
Skoro już mieliśmy do czynienia z dodawaniem, zacznijmy od odejmowania. To nie jest takie trudne; po prostu weź znak plusa i zastąp go minusem!

Odejmowanie wektorów

w, with, vector, on top, equals, u, with, vector, on top, minus, v, with, vector, on top
może być zapisane jako:
start text, w, end text, start subscript, x, end subscript, equals, start text, u, end text, start subscript, x, end subscript, minus, start text, v, end text, start subscript, x, end subscript
start text, w, end text, start subscript, y, end subscript, equals, start text, u, end text, start subscript, y, end subscript, minus, start text, v, end text, start subscript, y, end subscript
zatem funkcja wewnątrz PVector wygląda tak:
PVector.prototype.sub = function(vector2) {
    this.x = this.x - vector2.x;
    this.y = this.y - vector2.y;
  };
Poniższy przykład demonstruje odejmowanie wektorów biorąc różnicę między dwoma punktami—położenie kursora i środek okna.
Podstawowe własności działań na wektorach
Działania odejmowania i dodawania liczb rzeczywistych spełniają następujące reguły:
Reguła przemienności: 3, plus, 2, equals, 2, plus, 3
Reguła łączności: left parenthesis, 3, plus, 2, right parenthesis, plus, 1, equals, 3, plus, left parenthesis, 2, plus, 1, right parenthesis
Te same prawa obowiązują w działaniach na wektorach:
Reguła przemienności: u, with, vector, on top, plus, v, with, vector, on top, equals, v, with, vector, on top, plus, u, with, vector, on top
Reguła łączności: u, with, vector, on top, plus, left parenthesis, v, with, vector, on top, plus, w, with, vector, on top, right parenthesis, equals, left parenthesis, u, with, vector, on top, plus, v, with, vector, on top, right parenthesis, plus, w, with, vector, on top

Mnożenie wektorów

Przechodząc do mnożenia, musimy zmienić trochę sposób myślenia. Kiedy mówimy o mnożeniu wektora, zazwyczaj mamy na myśli skalowanie wektora. Gdybyśmy chcieli skalować wektor dwukrotnie lub o jedną trzecią jego wielkości (pozostawiając kierunek bez zmian), móglibyśmy powiedzieć: “Pomnoż wektor razy dwa” lub “Pomnóż wektor razy 1/3”. Zauważ, że mnożymy wektor przez skalar, pojedynczą liczbę, nie inny wektor.
Aby skalować wektor, mnożymy każdą jego składową (x i y) przez skalar.
w, with, vector, on top, equals, u, with, vector, on top, times, n
może być zapisane jako:
wx=uxnwy=uyn w_x = u_x * n \\ w_y = u_y * n
Skalowanie wektora
Spójrzmy na przykład z notacją wektorową.
u=(3,7)n=3w=unwx=33wy=73w=(9,21) \vec{u} = (-3, 7) \\ n = 3 \\ \vec{w} = \vec{u} * n \\ w_x = -3 * 3 \\ w_y = 7 * 3 \\ \vec{w} = (-9, 21)
W związku z tym, funkcja wewnątrz obiektu PVectormoże być zapisana jako:
PVector.prototype.mult = function(n) {
this.x = this.x * n;
this.y = this.y * n;
}
Użycie mult w kodzie jest proste:
var u = new PVector(-3,7);
// Ten PVector jest teraz trzy razy większy i równy (-9,21).
u.mult(3);
Tutaj mamy wcześniejszy przykład, z tym że za każdym razem pomnożyliśmy wektor przez 0,5, więc jest przeskalowany przez pół:
Zamiast powyższego mnożenia przez 0,5, moglibyśmy dzielić przez dwa. Dzielenie działa tak jak mnożenie—po prostu zamieniamy znak mnożenia (gwiazdkę) na znak dzielenia (ukośnik).
W ten sposób metoda div jest implementowana wewnętrznie:
PVector.prototype.div = function(n) {
this.x = this.x / n;
this.y = this.y / n;
}
A tak możemy użyć jej w kodzie:
var u = new PVector(8, -4);
u.div(2);

Więcej własności działań na wektorach

Tak jak z dodawaniem, podstawowe reguły algebraiczne związane z mnożeniem mają zastosowanie przy wektorach.
Reguła łączności: left parenthesis, n, times, m, right parenthesis, times, v, with, vector, on top, equals, n, times, left parenthesis, m, times, v, with, vector, on top, right parenthesis
Prawo rozdzielności z dwoma skalarami i jednym wektorem: left parenthesis, n, plus, m, right parenthesis, times, v, with, vector, on top, equals, n, times, v, with, vector, on top, plus, m, times, v, with, vector, on top
Prawo rozdzielności z dwoma wektorami i jednym skalarem: left parenthesis, u, with, vector, on top, plus, v, with, vector, on top, right parenthesis, times, n, equals, u, with, vector, on top, times, n, plus, v, with, vector, on top, times, n
Chcesz przećwiczyć wektory? Więcej o wektorach dowiesz się na Khan Academy w dzialeLinear Algebra: Vectors.

Ten kurs "Symulacje Natury" jest pochodną z "Natury Kodu " stworzonej przez Daniela Shiffmana, użytej pod licencją Creative Commons Attribution-NonCommercial 3.0 Unported License.

Chcesz dołączyć do dyskusji?

Na razie brak głosów w dyskusji
Rozumiesz angielski? Kliknij tutaj, aby zobaczyć więcej dyskusji na angielskiej wersji strony Khan Academy.