[C++]Obracanie punktu dokoła innego punktu
Ostatnio zmodyfikowano 2013-07-15 00:04
kurator125 Temat założony przez niniejszego użytkownika |
[C++]Obracanie punktu dokoła innego punktu » 2013-07-14 23:48:54 Witam, mam problem z obrotem punktu P1 dokoła punktu RP; Podaje kod który powinien obrócić P1 względem RP o pewien kąt ale nie działa i punkt P1 prawie po linii prostej odlatuje gdzieś :< void XXXX::rotate( float fa ) { float lX; float lY; lX = x1 - rpX; lY = y1 - rpY; lX = lX * cos( fa * PI / 180 ) - lY * sin( fa * PI / 180 ); lY = lY * sin( fa * PI / 180 ) - lX * cos( fa * PI / 180 ); lX += rpX; lY += rpY; setP1( lX, lY ); update(); }
legenda: x1 i y1 to współrzędne punktu P1; rpX i rpY to współrzędne punktu w okół którego chce obrócić P1; wzór który wykorzystałem znajduje się tu: http://matematyka.pisz.pl/strona/896.html |
|
Mrovqa |
» 2013-07-14 23:58:00 lY = lY * sin( fa * PI / 180 ) - lX * cos( fa * PI / 180 );
Popatrz na stronę, do której dałeś linka - pomyliłeś drugi wzór. Powinno być: lY = lX * sin( fa * PI / 180 ) + lY * cos( fa * PI / 180 );
|
|
kurator125 Temat założony przez niniejszego użytkownika |
» 2013-07-15 00:04:09 kurde ;d taki błąd zrobić :( dzięki. Tylko teraz się obraca i "spada" do punktu RP ale może coś wymyśle
ok wystarczy ze obracać będę za każdym razem współrzędne jakie punkty dostał przy tworzeniu. |
|
« 1 » |