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

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/

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

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:)

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.

0

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

0

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

0

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

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.

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