» »

opengl - rotacija dveh objektov

opengl - rotacija dveh objektov

bbspin ::

rad bi rotiral dva objekta tako da bi zgledalo kot da obstaja le en objekt... v spodnjem primeru sem premaknil
center rotacije v manjsem kvadratu tako da naj bi bil enak centru rotacije velikega kvadrata... skoraj deluje toda
ne tako kot bi si zelele...

     
        glPushMatrix();

        glTranslatef(300, 250, 0);
        glScalef(400, 300, 1);
        glRotatef(0, 1, 0, 0);
        glRotatef(0, 0, 1, 0);
        glRotatef(rz, 0, 0, 1);

        glBegin(GL_QUADS);
            glColor4f(0.0f, 0.0f, 1.0f, 1);
            glVertex3f(-0.5, 0.5, 0);
            glVertex3f(-0.5, -0.5, 0);
            glVertex3f(0.5, -0.5, 0);
            glVertex3f(0.5, 0.5, 0);
        glEnd();

        glPopMatrix();

        glPushMatrix();

        glTranslatef(200, 200, 0);
        glScalef(200, 200, 1);
        glTranslatef(0.5, 0.25, 0);
        glRotatef(0, 1, 0, 0);
        glRotatef(0, 0, 1, 0);
        glRotatef(rz, 0, 0, 1);
        glTranslatef(-0.5,-0.25,0);

        glBegin(GL_QUADS);
            glColor4f(0.8f, 0.0f, 0.0f, 1);
            glVertex3f(-0.5, 0.5, 0);
            glVertex3f(-0.5, -0.5, 0);
            glVertex3f(0.5, -0.5, 0);
            glVertex3f(0.5, 0.5, 0);
        glEnd();

        glPopMatrix();

        rz += 0.1;

bbspin ::

sm spremenu vrstni red transformacij tkole:

glTranslatef(200, 200, 0);
glTranslatef(100, 50, 0);
glRotatef(0, 1, 0, 0);
glRotatef(0, 0, 1, 0);
glRotatef(rz, 0, 0, 1);
glTranslatef(-100,-50,0)
glScalef(200, 200, 1);


zdej mi dela, ceprou se zmer ne razumm zakaj je bil prej problem...

Binji ::

Vrsti red transformacij je ponavadi kar pomemben. Če stvar najprej rotiraš, potem pa premakneš je drugače kot če najprej premakneš in potem rotiraš. Pri rotaciji namreč zarotiraš tudi koordinatni sistem. Vsaj pri GDI+ je tako.
Kdor ne navija ni Slovenc, hej, hej, hej!

bbspin ::

ja moja napaka je bila ocitno ker sem mislil, da je rotacija,skaliranje,translacija isto kot skaliranje,rotacija,translacija ... v mojem primeru pa sem zelel rotirati drug objekt okoli centra prvega...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

tekstura [c++ opengl]

Oddelek: Programiranje
9911 (696) matej94
»

[c++]OpenGL izris kvadrata

Oddelek: Programiranje
81270 (1130) Mavrik
»

C++ programirane v Open GL oz. Direct x

Oddelek: Programiranje
242976 (2247) Vesoljc
»

OpenGL problem

Oddelek: Programiranje
212483 (2049) Gundolf
»

rotacija

Oddelek: Programiranje
81077 (920) DarkWIng

Več podobnih tem