Platyna Opublikowano 30 Kwietnia 2009 Udostępnij Opublikowano 30 Kwietnia 2009 Ogarniam sobie silnik Ultimate3D i napotkałem na pewien problem. Otóż obrót trójwymiarowego obiektu w tym silniku polega na zmianie wartości zmiennych rotx, roty, rotz obiektu. Ja potrzebuje obracać jeden obiekt względem osi x i z. Z tym, że jeżeli obiekt już obrócę względem x to oś z zmieni orientację i ten obrót będzie nie według tej początkowej osi z tylko tej już obróconej względem x. Przykładowo: Jeśli najpierw obrócę obiekt względem x o 180 stopni, obiekt będzie jakby do góry nogami i orientacja osi z będzie odwrotna. No i wtedy jeśli będę obracał według z to obiekt zamiast normalnie isę kręcić będzie sie obracał w przeciwną stronę. No, więc jak można prosto wyliczyć wartości rotx i roty, aby się obrócił o zadaną wartość wzlędem tych początkowych osi? W GMowym 3D był pewna przydatna funkcja która obracała obiekt według jakiejś tam własnej osi i kąt wystarczyło wyliczyć z pitagorasa, ale Ultimate chyba tkiej funkcji nie ma. Ogólnie wiec trzeba jakoś chyba tak wyliczyć te wartości rotx, rotz żeby to się obróciło o sqrt(sqr(rotx)+sqr(rotz)) według takiej jakby osi będącej "uśrednieniem" osi x i z. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 30 Kwietnia 2009 Udostępnij Opublikowano 30 Kwietnia 2009 U3d ma coś takiego jak matryce transformacji. Nie jestem pewien, ale prawdopodobnie będziesz musiał ich użyć w tym wypadku. Tytam McAngus robi rpg na u3d, może ci pomoże. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się