Główna zawartość
Programowanie
Kurs: Programowanie > Rozdział 5
Lekcja 4: Wektory- Wprowadzenie do wektorów
- Wyzwanie: Twórca Wektorów
- Więcej matematyki wektorowej
- Wyzwanie: Miecz Świetlny
- Długość i normalizacja wektora
- Wyzwanie: Wizualizer wielkości
- Ruch wektorowy
- Wyzwanie: Hamujący Samochód
- Funkcje statyczne a metody instancyjne
- Wyzwanie: Funkcje statyczne
- Interaktywny ruch wektorowy
- Wyzwanie: Prześladowca myszki
- Projekt: Stworzenia obliczeniowe
© 2023 Khan AcademyWarunki użytkowaniapolitykę prywatnościInformacja o plikach cookie
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ówsub()
— odejmowanie wektorówmult()
— mnożenie wektora przez skalardiv()
— dzielenie wektora przez skalarmag()
— obliczanie długości wektoranormalize()
— zwraca wektor jednostkowy, o długości równej 1limit()
— ogranicza długość wektoraheading2D()
— zwraca kąt, pomiędzy wektorem a osią X, w dwóch wymiarachdist()
— 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 wektoramidot()
— iloczyn skalarny dwóch wektorówcross()
— 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
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
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
w, with, vector, on top, equals, u, with, vector, on top, times, n
może być zapisane jako:
Spójrzmy na przykład z notacją wektorową.
W związku z tym, funkcja wewnątrz obiektu
PVector
moż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