C++, Sfml, Proszę o pomoc przy ustaleniu kierunku jednostki

Odpowiedz Nowy wątek
2015-04-12 12:33
0

Witam, mam mały problem z obliczeniem ruchu jednostki pod danym kątem. Na początku pobieram rotacje tzn kąt. postać jest skierowana w góre równo z osią y i to jej punkt 0. Załóżmy, że mamy sytuacje iż nasza jednostka obraca się pod kątem 45(zgodnie ze wskazowkami zegara czyli w prawo). Kąt 45 przeliczamy na radiany. 45*3.14/180= 0.785 rad i w sumie nie wiem co zrobić dalej ponieważ muszę to podać w innych jednostkach. Cały kod który znalazłęm w necie wygląda tak:


float rotacja = sprite.getRotation();

float vx = sin(( rotacja * M_PI ) / 180.0f );

float vy = -cos(( rotacja * M_PI ) / 180.0f );

sprite.move (speed*vx,speed*vy);

Wiem, że sin jest związany z osią x, a cos z y a jest ujemny ponieważ w programowaniu oś y zwiększa wartość w dół. Ale moje pytanie brzmi: Dlaczego sin odnosi wlasnie sie do x a cos do y? wiem ze sin=przypostokatna na przeciw kata a/przeciwprostokatna ale nie wiem co dalej z tego wywnioskowac. Zresszta sin(rad) wiec nie wiem jak sie do tego w ogole odniesc. I dlaczego w poruszaniu jest szybkość * sin załózmy a nie + czy / :) Liczę na dobrą odpowiedź :) Z góry dzięki :)

http://postimg.org/image/9ntzplbcv/

  • 2.jpg (0,03 MB) - ściągnięć: 61
edytowany 1x, ostatnio: szmq, 2015-04-12 14:11

Pozostało 580 znaków

2015-04-12 13:41
0

Wiem, że sin jest związany z osią x, a cos z y

Na odwrót.
user image
Wynika to wprost ze wzorów na sinus i cosinus

edytowany 3x, ostatnio: Sopelek, 2015-04-12 13:43

Pozostało 580 znaków

2015-04-12 13:50
0

Gdy napiszę w ten sposób to jednostka obraca się wokół danego punktu, a ma podążać za tym punktem tzn isc prosto w jego kierunku dlatego wzor jest dobry ale nie wiem dlaczego w sumie:)

Pozostało 580 znaków

2015-04-12 13:52
0

Jeśli jednostka ma podążać za jakimś punktem to niepotrzebnie w ogóle bawisz się w liczenie kątów, bo można to wszystko zrobić na wektorach.

edytowany 1x, ostatnio: Sopelek, 2015-04-12 13:53

Pozostało 580 znaków

2015-04-12 13:54
0

załóżmy że mam dany tylko kąt :)

Pozostało 580 znaków

2015-04-12 13:57
0

To powinieneś robić tak jak napisałem.
To, że kąt jest zły, nie znaczy, że wzór jest zły.

Pozostało 580 znaków

2015-04-12 14:06
0

kąt jest zły? co przez to rozumiesz? mógłbyś trochę bardziej się wypisać?

Pozostało 580 znaków

2015-04-12 14:11
0

Że kąt który jest podany zakłada jakiś inny punkt odniesienia/kierunek lub liczysz kąt w nie odwrotny sposób do liczenia z niego współrzędnych.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0