Witam, otóż mam (chyba) prosty problem z program graf. w opengl. Chce zasymulować ruch skrzydeł. Podzieliłem je na 2 części tak aby mogły one poruszać się niezależnie. I tak z rotacją pojedynczej części nie mam problemu. Problem pojawia się gdy chcę wychylić drugą część względem wychylonej już części pierwszej. Nie mam pojęcie jak obliczyć pkt względem którego mam dokonać rotacji. Prosty schemat problemu :
-- ( pozycja początkowa)
_/ ( to jest OK )
_
\ ( to jest OK )
/
/
\
\ ( przy tych przypadkach pojawia się problem)
Może trochę źle to wygląda bo akurat sytuacją na tym rysunku umiem zrealizować ( przesunięcie obu obiektów wokół tej samej osi razem ). Jednak ja chcę aby tą drugą część wychylić o inny kąt niż tą pierwszą.
Próbowałem czegoś takiego :
glTranslatef(0,1.15+cos(a),sin(a));
glRotatef(2*a,1,0,0);
glTranslatef(0,-1.15-cos(a),-sin(a));
gdzie a to kąt wychylenia pierwszej części a 1,15 to przesunięcie jakiego muszę dokonać przy zerowym wychyleniu części pierwszej.
Mam nadzieję, że w miare jasno to wyjaśniłem. Proszę o pomoc i pozdrawiam.