[C++, Allegro5] Odczyt pozycji obróconego punktu względem obiektu
Ostatnio zmodyfikowano 2012-05-12 15:10
SeaMonster131 Temat założony przez niniejszego użytkownika |
[C++, Allegro5] Odczyt pozycji obróconego punktu względem obiektu » 2012-05-12 14:26:36 Może najpierw przedstawię rysunek: http://scr.hu/0ug/p2wo3Czyli tak: Na pierwszym rysunku (ten po lewej) jest sobie obiekt (na pozycji x, y) - prostokąt i czerwona kropka (na pozycji x2, y2). Po obróceniu obiektu o n-stopni (na rysunku o 90 stopni w prawo, rysunek po prawej) pozycja x2 i y2 to czerwona kropka, a ja chciałbym odczytać nową pozycje tej kropki - tej żółtej. Kropkę rysuję tak: al_draw_rotated_bitmap( pkt, - 30, 5, 1024 / 2 - 37.5, 768 / 2 - 37.5, angle, 0 );
-30,5 - jest to pozycja na bitmapie (obiekcie) wokół którego ma się obracać pkt 1024/2-37.5, 768/2-37.5 - to pozycja kropki angle - to kąt obiektu Wszystko jest dobrze, lecz tutaj jest moje pytanie.. W jaki sposób mam teraz odczytać, gdzie znajduje się ta kropka po obróceniu obiektu? |
|
xevuel |
» 2012-05-12 14:50:49 Może źle cię zrozumiałem, jeśli tak, to przepraszam... Ale czy zwykłe sin() i cos() nie wystarczą? W końcu jakby nie patrzyć, po wprawieniu w ciągły obrót tego prostokąta kropka będzie się poruszać po okręgu :) |
|
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2012-05-12 15:02:55 Hm.. zrobiłem tak: float x2 = 1024 / 2 - 37.5, y2 = 768 / 2 - 37.5; ... al_draw_rotated_bitmap( pkt, - 30, 5, x2, y2, angle, 0 ); x2 += speed * cos( angle ); y2 += speed * sin( angle );
Lecz kropka porusza się za szybko, i zmienia pozycje według której się obraca.. // Dobra, nie zauważyłem jednego małego i głupiego błędu.. Nie dodałem pozycji kamery do wyświetlania tego pkt ! :) Przepraszam za temat :) |
|
xevuel |
» 2012-05-12 15:09:09 Cóż... Ja bym to zrobił tak, że pozycja kropki przy kącie obrotu 0° wynosi środek prostokąta + sinus i cosinus * np. 50. Potem liczę sinus i cosinus dla obrotu prostokąta (jego środek pozostanie przecież cały czas w jednym miejscu) i mnożę wynik przez te 50. Szybkość może być za szybka, ale raczej nie zmieni już pozycji po której się obraca :) Przynajmniej tak to wygląda u mnie na papierze...
//Jak pisałem tego posta to jeszcze nie zdążyłeś wyedytować tamtego :P Super :) |
|
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2012-05-12 15:10:27 Dziękuję Ci bardzo za wszelką pomoc, lecz temat już rozwiązany :) |
|
« 1 » |