Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][HTML5]Canvas, ruch obiektu po krzywej
CuteOne
post
Post #1





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Witam, mój problem dotyczy poruszania się obiektu pod odpowiednim kątem. Zacznę może od graficznego przedstawienia tego co zamierzam osiągnąć:
(IMG:http://img51.imageshack.us/img51/7267/unled1copyki.jpg)

Pierwszy przykład z obrazka jest prawidłowym ruchem obiektu(niebieskiej kulki) po krzywej, którego mimo moich usilnych starań nie jestem w stanie osiągnąć. Drugi przykład to dodawanie do aktualnej pozycji obiektu(x,y) jednego pixela. Niestety tego typu rozwiązanie zawsze daje kąt 45 stopni a gdy y osiągnie max. wartość obiekt zaczyna poruszać się po linii prostej.

Trzeci przykład to "porcjowanie" czyli podczas ruchu obiektu co 2px w pozycji x dodawany jest 1px w pozycji y
[JAVASCRIPT] pobierz, plaintext
  1. var obiekt = {x: 10, y: 10, cx:48, cy:18};
  2. var p = 0;
  3. var proporcja = Math.floor(obiekt.cx / obiekt.cy); // proporcja = 2
  4.  
  5. // pętla animacji
  6. obiekt.x += 1;
  7. if(p == proporcja) {
  8. obiekt.y += 1; // co 2 przejścia pętli zostaje dodany 1px do y
  9. p++;
  10. }
  11. // rysowanie obiektu
[JAVASCRIPT] pobierz, plaintext

x - pozycja startowa na osi X
y - pozycja startowa na osi Y
cx - pozycja końcowa na osi X
cy - pozycja końcowa na osi Y

Jak widać na obrazku takie rozwiązanie również nie wypali ponieważ powstaną schodki (IMG:style_emoticons/default/sad.gif)

Próbowałem obliczyć kąt pod jakim obiekt powinien się poruszać za pomocą funkcji atan2() niestety nie byłem w stanie dla każdego przejścia pętli obliczyć aktualnego położenia obiektu.

Pomysły mi się skończyły, więc piszę do was (IMG:style_emoticons/default/smile.gif) może ktoś zna rozwiązanie mojego problemu?


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


raczej nie (IMG:style_emoticons/default/smile.gif) atan2 ładnie wylicza kąt biorąc pod uwagę położenie obiektu na osi x,y bez konieczności obliczania kąta alfa -> przeliczania na radiany.

Problemem jest uzyskanie położenia obiektu po każdorazowym przejściu pętli.

Ten post edytował CuteOne 11.08.2011, 19:43:19
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.09.2025 - 19:37