2009-10-15 8 views
5

Potrzebuję uzyskać wektor do kamery (aby uzyskać odpowiedni wygląd) od kąta przechylenia, nachylenia i odchylenia (w stopniach). Próbowałem różnych rzeczy przez kilka godzin i nie miałem szczęścia :(Każda pomoc tutaj byłaby doceniona!Jak uzyskać wektor kamery z rolki, wysokości i odchylenia?

+0

Ponieważ oznaczono go wszystkimi głównymi bibliotekami graficznymi, uważam, że można bezpiecznie założyć, że chodzi o to, jak to zrobić. –

+0

Yep Blaenk, który jest poprawny ... Potrzebowałem tylko pomocy z matematyką: D – Polaris878

Odpowiedz

5

Rolka, skok i odchylenie definiują obrót na 3 osi. Z tych kątów można zbudować 3x3 macierz transformacji, która wyraża ten obrót (see here how)
Po tej macierzy bierzesz swój zwykły wektor, powiedzmy (0,1,0), jeśli "góra" jest osią Y i pomnóż ją macierzą. dostać jest przekształcona w górę wektor

Edit -.
Stosując transformację do (0,1,0) to samo, co biorąc środkowego rzędu 3 rzędy MAK matrycy. e do podstawy ortogonalnej obróconego układu. Pamiętaj, że interfejs graficzny 3D wykorzystuje matryce 4x4. Tak, aby macierz 4x4 z macierz obrotu 3x3 trzeba dodać „1” w M [3] [3] (rogu) i zer na resztę tak:

r r r 0 
r r r 0 
r r r 0 
0 0 0 1 
+0

Shoosh, co jeśli nie zastosuję transformacji do (0,1,0)? Czy mogę po prostu wyciągnąć jeden z rzędów/kolumn z matrycy obrotu jako moją? Dzięki – Polaris878

+0

Tak, zamiast wykonywać transformację macierzy wektorowych, można uprościć równanie, pomijając sumy zerowe/warunki. Ponadto wektory mogą mieć kolumnę główną lub wiersz-główną. Upewnij się, że poprawnie wyciągasz oś. –

1

ten nie może bezpośrednio odpowiedz na twoje pytanie, chociaż nadal może pomóc. Mam darmowy projekt open source dla XNA, który tworzy terminal debugowania, który nakłada się na twoją grę, gdy jest uruchomiony. Możesz użyć tego do wyszukiwania wartości, wywoływania metod lub cokolwiek innego. Więc jeśli masz macierz transformacji i chcesz wyodrębnić różne jej części, gdy gra jest uruchomiona, możesz to zrobić. Projekt można znaleźć tutaj: http://www.protohacks.net/xna_debug_terminal

Nie mam zbyt dużej wiedzy na temat matematyki, której używasz, ale mam nadzieję, że post Shoosh pomaga w tym. Być może terminal debugowania może ci pomóc, gdy wypróbujesz jego pomysł lub jakiekolwiek inne problemy, które napotkasz.

+0

hah nie mogę się doczekać, aby zagrać z tym później. Wygląda jak narzędzie, którego potrzebowałem przez jakiś czas ... musiałem napisać konsolę w moich projektach i danych wyjściowych tam ... bardzo bardzo przylegające. –

Powiązane problemy