wlochaty7 Napisano Czerwiec 6, 2009 Zgłoś Share Napisano Czerwiec 6, 2009 Cześć, jak wykonać ruch po ścieżce ? Mam linie , znam jej (x,y) poczatkowe i końcowe. Gdyby to była linia równa osi X lub Y to by problemu nie było, ale jest ona nachylona pod pewnym kątem. Kąt znam no ale i tak są problemy gdyż.. używałem takiego wzoru: this.y-=Math.rint(predkosc*Math.cos(kat)); this.x+=Math.rint(predkosc*Math.sin(kat)); I wszystko pięknie łądnie, ino nie przy każdym kącie nachylenia linii obiekt poruszał się po niej, więc stad moje pytanie, jak można inaczej zapisać metode poruszania się obiektu po ścieżce by od początku do końca poruszał się po wskazanej linii?:> Link do komentarza Udostępnij na innych stronach More sharing options...
5corpio Napisano Czerwiec 6, 2009 Zgłoś Share Napisano Czerwiec 6, 2009 Stwórz sobie wektor kierunku... znormalizuj go i potem możesz śmiało przesuwać o ten wektor ew. mnożyć go przez jakąś prędkość tego czegoś co ma się przesuwać i będzie śmigać pod jakimś tam kątem i wzdłuż tej prostej. Edit: albo jeszcze bardziej na upartego i mniej sensownie możesz zapisać równanie tej prostej z i niego korzystać... przesunięcie o ileś X i wyliczasz z tego przesunięcie o ileś Y mając to równanie (ale to bez sensu) Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link do komentarza Udostępnij na innych stronach More sharing options...
wlochaty7 Napisano Czerwiec 6, 2009 Autor Zgłoś Share Napisano Czerwiec 6, 2009 Hmm.... oki, ale jak ta historia z wektorami mogłą by w kodzie wyglądać? bo idea całkiem spoko jest ino nie umiem sobie uzmysłowić jak by to namacalnie wygladało Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Czerwiec 7, 2009 Zgłoś Share Napisano Czerwiec 7, 2009 polecam przeczytanie tych 2 postow: http://forum.4programmers.net/viewtopic.php?id=39079 Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
5corpio Napisano Czerwiec 7, 2009 Zgłoś Share Napisano Czerwiec 7, 2009 Masz Pkt. początkowy i pkt. końcowy tego odcinka ("prostej") po której ma się poruszać. Najpierw musisz sobie zrobić parę metod do wektorów i jakiś objekt typu wektor: // Najpierw jakiś objekt typu wektor (zakładamy 2d) Vector2d = record x,y : Single; end; //Magnitude to długość wektora Function VectorMagnitude(const v1 : Vector2d) : Single; begin result := (sqrt(v1.x * v1.x + v1.y * v1.y)); end; //Metoda do znormalizowania wektora (na przykład tak: ) Function VectorNormalize(const v1 : Vector2d) : Vector2d; var m : Single; begin m := VectorMagnitude(v1); if (m <= tol) then m := 1; result.x := v1.x / m; result.y := v1.y / m; if (abs(result.x) < tol) then result.x := 0; if (abs(result.y) < tol) then result.y := 0; end; Ś)YŃ)ŃŹ)ŃŹ)YŃ9ąĄ Oczywiście ta linijka tak od razu nie śmignie musisz zamiast tego zrobić metody do dodawania wektorów o ile pozycję zapisujesz również w strukturze wektora i dodatkowo dopisać metodę do mnożenia wektora przez skalar. Edit: of corz kod napisany jest w Delphi a nie w javie Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link do komentarza Udostępnij na innych stronach More sharing options...
wlochaty7 Napisano Czerwiec 7, 2009 Autor Zgłoś Share Napisano Czerwiec 7, 2009 Hmm... czyli czy dobrze rozumiem, ma ta prostą i mam punkt poczatkowy, licze wektor, wychodza mi pewne wartosci i dodaje do tego punktu te wartosci przez co obiekt sie przesuwa, i tak wzdłuż całej prostej, tak?:> Link do komentarza Udostępnij na innych stronach More sharing options...
5corpio Napisano Czerwiec 7, 2009 Zgłoś Share Napisano Czerwiec 7, 2009 Sprawdź Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.