OpenGL ens proporciona funcions per a control·lar tres tipus de transformacions geomètriques: translació, rotació i escalat; gràficament resulta senzill d’entendre:
Aquestes transformacions es representen com a matrius 4×4 ordenades com vectors columna tal que:
No anem a entrar en profunditat en com apliquem matemàticament aquestes transformacions; el codi OpenGL que les realitza és el següent:
glTranslatef(1.0f, 1.0f, 1.0f); // per a translació glRotatef(45.0f, 1.0f, 0.0f, 0.0f); // per a rotació glScalef(2.0f, 2.0f, 2.0f); // per a escalat objecte();
Amb aquestes transformacions i els objectes que ja haviem creat, podem muntar per exemple una escena com aquesta:
void escena(){
//esfera
glPushMatrix();
glTranslatef(0.4f, 0.0f, 0.0f);
glRotatef(0.0f, 0.0f, 0.0f, 0.0f);
glScalef(1.4f, 1.4f, 1.4f);
esferaAlambre(10);
glPopMatrix();
//esfera
glPushMatrix();
glTranslatef(-0.4f, 0.0f, 0.0f);
glRotatef(0.0f, 0.0f, 0.0f, 0.0f);
glScalef(0.4f, 0.4f, 0.4f);
esferaAlambre(10);
glPopMatrix();
//cilindre
glPushMatrix();
glTranslatef(0.0f, 0.0f, 0.0f);
glRotatef(45.0f, 0.0f, 0.0f, 1.0f);
glScalef(2.4f, 2.4f, 2.4f);
cilindroAlambre(10);
glPopMatrix();
}
Finalment, utilitzant el següent codi podem usar el mouse per a moure la figura de diferents maneres, usant les transformacions que hem explicat anteriorment. Tampoc anem a entrar en detalls sobre el codi que hem afegit per a que açò funcione, però si n’esteu interessats, podeu analitzar revolucion.c.




