transformacje w 3d (lookAt)

altanis
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 1 gru 2007, o 19:02
Płeć: Mężczyzna
Lokalizacja: Poznań

transformacje w 3d (lookAt)

Post autor: altanis »

Witam mam pewnien problem do rozwiazania....
Zalozmy przestrzen 3d (uklad prawoskretny).
W tej przestrzeni istnieja dwa obiekty (jeden na wspolrzednych x1,y1,z1 drugi na x2,y2,z2. Oba obiekty maja swoj przod i tych (zalozmy ze sa to statki kosmiczne). Znamy dokladne polozenie obu obiektow w swiecie oraz katy o jakie sa obrocone wokol wlasnych osi.

Teraz moje pytanie

Jak zdefiniowac za pomoca przesuniec obiektow oraz poprzez ich obroty wokol wlasnych osi sytuacje, gdzie obiekt1 "patrzy sie" na obiekt2.?

Czy ktos ma jakis pomysl jak do tego podejsc?

pozdrawiam
Awatar użytkownika
eloar
Użytkownik
Użytkownik
Posty: 106
Rejestracja: 18 cze 2007, o 16:59
Płeć: Mężczyzna
Lokalizacja: Kobyłka
Podziękował: 8 razy
Pomógł: 12 razy

transformacje w 3d (lookAt)

Post autor: eloar »

zdefiniuj sobie jakis punkt, najlepiej w srodku kazdego obiektu i wyliczaj dokladne jego polozenie za kazdym razem, gdy zmieni sie polozenie lub orientacja obiektu, ktory go zawiera. Wtedy po prostu poprowadzisz proste od tego punktu do srodka przodu obiektu drugiego. Bedzesz mogl z tego okreslic, czy sie widza, czy nie. Do czego Ci to dokladnie potrzebne? jesli chcesz umiescic kamere na obiekcie, to faktycznie lepiej bedzie skorzystac z jakiejs funkcji typu lookAt() z OpenGL.
altanis
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 1 gru 2007, o 19:02
Płeć: Mężczyzna
Lokalizacja: Poznań

transformacje w 3d (lookAt)

Post autor: altanis »

Witam
Faktycznie trafiles, pisze pisze oprogramowanie, niestety w tak biednym srodowisku, gdzie nie ma zadnych tego typu wbudowanych metod
Metoda wydaje sie logiczna, ale niestety nie moge jej zaimplementowac...wyliczanie srodkow obiektow co klatke jest bardzo nie optymalne.....jezeli bedzie to ostatecznosc to zaimplementuje ta metode i zobaczymy jak daje rade
Druga sprawa to wydaje mi sie ze ta metoda jest idealna do testowania czy obiekty na siebie patrza a mi chodzi o skierowanie okiektu....
pozdrawiam
Awatar użytkownika
eloar
Użytkownik
Użytkownik
Posty: 106
Rejestracja: 18 cze 2007, o 16:59
Płeć: Mężczyzna
Lokalizacja: Kobyłka
Podziękował: 8 razy
Pomógł: 12 razy

transformacje w 3d (lookAt)

Post autor: eloar »

ja bym to zrobil przy pomocy trzech punktow. jeden punkt w obiekcie na ktory bedzie trzeba patrzec i 2 punkty w obiekcie, ktory bedzie patrzyl. W rezultacie przez 2 punkty w obiekcie patrzacym biegnie jakas prosta. Celem patrzenia jest takie obrocenie obiektu patrzacego, aby wszystkie 3 punkty znalazly sie na tej prostej. To akurat nie bedzie takie trudne, a wyliczenie tego co klatke wcale nie jest nieoptymalne, bo bedzie wykonywane wystarczajaco szybko. Wszystko rozbija sie o dosc proste wzory matematyczne. Wyliczenie wsp tych punktow, policzenie prostej przechodzacej przez 2 punkty, a potem odpowiedni obrot, aby prosta zawarla w sobie i trzeci punkt, ktory w ostatnim etapie jest traktowany jako stala.
ODPOWIEDZ