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=uv
może być zapisane jako:
wx=uxvx
wy=uyvy
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+2=2+3
Reguła łączności: (3+2)+1=3+(2+1)
Te same prawa obowiązują w działaniach na wektorach:
Reguła przemienności: u+v=v+u
Reguła łączności: u+(v+w)=(u+v)+w

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=un
może być zapisane jako:
wx=uxnwy=uyn
Skalowanie wektora
Spójrzmy na przykład z notacją wektorową.
u=(3,7)n=3w=unwx=33wy=73w=(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: (nm)v=n(mv)
Prawo rozdzielności z dwoma skalarami i jednym wektorem: (n+m)v=nv+mv
Prawo rozdzielności z dwoma wektorami i jednym skalarem: (u+v)n=un+vn
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.