Wybacz mi, jeśli nie jest to prawdziwe pytanie, ale naprawdę jestem zdezorientowany.
Ciągle słyszę, jak inni twórcy gier mówią o tym, jak używanie wektorów jest bardzo przydatne, ale także o tym, jak wszyscy są zastraszani przez matematykę wektorów, a wektory mogą wydawać się zniechęcające. Nigdy się nie dowiedziałem o nich.
W końcu spojrzałem na Vector na Wikipedię i byłem zaskoczony. O ile się nie mylę, wektor (dla uproszczenia, powiedzmy, że jest 2D), jest tylko współrzędną xiy. Jeśli źle zrozumiałem, popraw mnie.
Oto moje pytanie: czy to nie znaczy, że jakakolwiek reprezentacja dwóch (lub trzech) współrzędnych wymiarowych jest wektorem? Jeśli tak, to wektory i współrzędne są tym samym. Tworzenie gry bez współrzędnych jest prawie niemożliwe , więc w jaki sposób wektory są mylące lub nowe dla kogoś, kto wykonał dowolną ilość programowania?
Przydałoby mi się wyjaśnienie. Każda pomoc jest mile widziana.
źródło
Odpowiedzi:
Nie pozwól, aby matematyka usłyszała, jak nazywasz punkty Wektory lub współrzędne!
Wektor 2D ma składnik xiy , a nie współrzędną. Wektory nie definiują pozycji, określają kierunek i wielkość.
Nie potrafię powiedzieć, dlaczego ludzie są zastraszani przez nich, prawdopodobnie z tego samego powodu, dla którego ludzie są zastraszani przez matematykę, ponieważ wszyscy mówią, że jest ciężko, zanim się czegoś dowiedzą!
Wektory i współrzędne to nie to samo. Wyglądają podobnie, ale sposób ich użycia jest zupełnie inny.
Współrzędne określają pozycję na świecie. Wektory określają kierunek i wielkość. Oba są często używane razem. Jako przykład:
Postać ma pozycję i prędkość. Pozycja jest współrzędną, a prędkość jest wektorem. Dodanie prędkości do pozycji spowoduje przesunięcie postaci w kierunku wektora na odległość określoną przez wielkość wektora (zwróć uwagę, że wielkość wektora to prędkość, więc daje nam to kierunek i prędkość).
Lub w tym przykładzie:
Dwie postacie mają pozycje, a strzał laserowy jest wektorem. Wektor między dwiema pozycjami to (3,1). Oznacza to, że podróżuje on +3 wzdłuż osi X i +1 wzdłuż osi Y. Gdzie wielkość można znaleźć za pomocą Sqrt ((X X) + (Y Y)).
Dobry przegląd matematyki wektorowej można znaleźć na blogu Wolfire
źródło
Myślę, że czynnik zastraszania może powstać, gdy zaczniesz zajmować się bardziej skomplikowanymi operacjami, takimi jak normalizacja, produkty kropkowe i krzyżowe oraz używanie wielu układów współrzędnych z macierzami do transformacji między nimi. Na początku niekoniecznie są one łatwe do zrozumienia, nawet jeśli masz silną geometrię i tło algebry.
Ponadto, przynajmniej w Stanach Zjednoczonych, ludzie, którzy przeszli przez typową sekwencję matematyki w szkole średniej, są przyzwyczajeni do myślenia o geometrii w kategoriach linii, nachyleń, kątów itp. Muszą w pewnym stopniu oduczyć się tych rzeczy i nauczyć się pomyśl o tym w kategoriach wektorów i macierzy. Nie chodzi o to, że pojęcia algebry liniowej są tak rozciągnięte, ale o to, że są nieco innym zestawem pojęć niż te stosowane w klasycznej geometrii, których ludzie prawdopodobnie nauczyli się w szkole.
BTW, różnica między wektorami i punktami polega na operacjach, które można na nich wykonać. Chociaż oba są reprezentowane (w określonym układzie współrzędnych) przez listę komponentów, a zatem wyglądają „tak samo”, dozwolone operacje nie są takie same. Na przykład możesz dodać dwa wektory lub pomnożyć wektor przez skalar. Nie możesz tego zrobić z punktami - a przynajmniej nie ma to sensu. Ale możesz odjąć dwa punkty, a wynikiem jest wektor od jednego punktu do drugiego. Możesz także dodać punkt do wektora, aby uzyskać nowy punkt.
Punkty i wektory zachowują się również inaczej w odniesieniu do transformacji. Mianowicie punkty podlegają tłumaczeniu, podczas gdy wektory nie. Rozważ przykład obiektu poruszającego się z pozycją (punkt) i prędkością (wektor); jeśli przetłumaczysz obiekt w inne miejsce, zmienisz jego położenie, ale nie jego prędkość.
W rzeczywistości, popierając tę linię rozumowania, nie istnieją tylko wektory; istnieją inne byty, takie jak kowektory i biwektory , które mogą również „wyglądać” jak wektor pod względem posiadania listy komponentów w układzie współrzędnych, ale zachowują się inaczej pod względem dostępnych operacji i sposobu, w jaki reagują na transformacje. Wszystko to należy do dziedziny matematyki zwanej algebrą Grassmanna . Poza tym można być jeszcze bardziej ogólnym i rozważyć algebrę tensorową . To są jednak rzeczy zaawansowane.
źródło
Wektory naprawdę nie są takie złe. Jest tylko trochę matematyki, której ludzie nie znają.
Przede wszystkim wektor nie reprezentuje pozycji w przestrzeni. Jest to bardzo ważne pod względem koncepcyjnym. Wektor reprezentuje kierunek, taki jak „Północ” i wielkość. Na mapie o normalnych współrzędnych matematycznych XY „północ” będzie wektorem (0,1) (w górę na osi Y). Nie należy tego mylić z pozycją (0,1), która jest o jedną jednostkę powyżej, gdziekolwiek umieścisz początek. Wektor jest kierunkiem i wielkością .
Przemieszczenie (ruch) jest wektorem (podobnie jak przesunięcie dwóch jednostek w górę i jednej jednostki w prawo), Pozycja nie.
Wektory same w sobie nie są tym, z czym ludzie mają problem. Zwykle są to macierze i operacje na wektorach.
Na przykład, jeśli pomnożysz wektor przez specjalną macierz zwaną „macierzą obrotu”, wektor zostanie obrócony o wartość określoną przez macierz. Ponadto niektóre osoby mają problemy z mnożeniem macierzy. Spójrz na to, jeśli go nie znasz.
Ponadto można łączyć te macierze (lub operacje) razem. Podobnie jak Obrót o 90 stopni wokół osi X, a następnie Obrót o 90 stopni wokół osi Y. Jeśli nazwiemy pierwszą macierz M, a drugą macierz N, wówczas operacją byłoby v * M * N. Jednak mnożenie macierzy nie jest przemienne, więc to nie to samo, co v * N * M.
W programowaniu graficznym regularnie wykonujesz znacznie bardziej skomplikowane operacje na wektorach i innych macierzach. Transformacje FoV i umieszczenie współrzędnych w przestrzeni ekranu itp. To naprawdę nie jest takie złe, ale może być zastraszające dla nowych ludzi.
źródło