RaistlinBlackRobe Opublikowano 6 Marca 2008 Udostępnij Opublikowano 6 Marca 2008 Zastanawiałem się jak wyliczyć pozycję przesunięcia w trójwymiarze mając daną prędkość i kierunki: poziomy(dla oś x i y) oraz pionowy(dla osi z). Doszedłem do nastepujących wniosków: /* hdir to kierunek poziomy vdir to kierunek pionowy speed to predkosc */ x+=cos(degtorad(hdir))*speed; y+=sin(degtorad(hdir))*speed; z+=sin(degtorad(vdir))*speed; Noi tu zaczynają się schody. Może to zilustruję: Zielony punkt to pozycja przesunięcia jaka powinna być, a czerwony, to taka jaka niestety jest. Idąc dalej doszedłem do wniosku, że trzeba działać na wartości speed przy powiększaniu x i y(tak aby były względne wobec zmiennej vdir). Czy mógłby ktoś powiedzieć czy istnieje jakiś sposób przeliczenia tego, a jeżeli tak, to czy mógłby go ktoś podać? Z góry dziękuję. :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 6 Marca 2008 Udostępnij Opublikowano 6 Marca 2008 GML x+=cos(degtorad(hdir))*sin(degtorad(vdir))*speed; y+=sin(degtorad(hdir))*sin(degtorad(vdir))*speed; z+=sin(degtorad(vdir))*speed; Chyba tak to szło. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
RaistlinBlackRobe Opublikowano 6 Marca 2008 Autor Udostępnij Opublikowano 6 Marca 2008 GML x+=cos(degtorad(hdir))*sin(degtorad(vdir))*speed; y+=sin(degtorad(hdir))*sin(degtorad(vdir))*speed; z+=sin(degtorad(vdir))*speed; Chyba tak to szło. Z tego co widzę to działa. Dzięki. :) EDIT: Teraz to zauważyłem, że jednak trzeba użyć cos nie sin. xD (wcześniej testowałem na kącie 45 stopni, przy którym sin i cos mają tą samą wartość i dlatego nie zauważyłem) 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ę