2. Transformación Bidimensional
• Los objetos se definen mediante un conjunto de puntos. Las
transformaciones son procedimientos para calcular nuevas
posiciones de estos puntos, cambiando el tamaño y orientación
del objeto
4. Escalamiento
• El escalamiento modifica el tamaño de un polígono. Para obtener este
efecto, se multiplica cada par de coordenado (x, y) por un factor de escala
en la dirección x y en la dirección y para obtener el par (x’, y’).
5. Rotación
• Se aplica una rotación bidimensional en un objeto al cambiar su posición
a lo largo de la trayectoria de una circunferencia en el plano de xy . Para
generar una rotación, especificamos un ángulo de rotación θ y la posición
(x r , y r ) del punto de rotación (o punto pivote) en torno al cual se gira el
objeto.
6. Translación
Una traslación es el movimiento en línea recta de un objeto de una posición a otra.
Se traslada cada punto P(x,y) dx unidades paralelamente al eje x y dy unidades
paralelamente al eje y, hacia el nuevo punto P'(x',y').
7. Translación en Open GL
• glTranslatef ---------------------------------- trasladar el objeto
• Ejemplo
glTranslatef(10.0f, 0.0f, 0.0f);
8. Rotación en Open GL
• glRotatef (GLfloat angulo, GLfloat x, GLfloat y, GLfloat z);-------- rotar el objeto
• Ejemplo
• glRotatef(45.0f, 1.0f, 0.0f, 0.0f);
9. Escalonamiento en Open GL
• glScalef (GLfloat x, GLfloat y, GLfloat z)-------------- escalonar el objeto
• Ejemplo
• glScalef( 2.0f, 1.0f, 1.0f );
10. Notas:
• Todas las operaciones básicas se trabajan como matrices.
• Se manejan Pilas
• A continuación se darán algunas partes de sintaxis para empezar las
operaciones básicas.
11. • OpenGL tiene una pila para las transformaciones geométricas y de la
cámara llamada GL_MODELVIEW, y otra para las proyecciones
denominada GL_PROYECTION.
• Para indicar sobre qué pila estamos trabajando se utiliza la
función glMatrixMode(Nombre_Pila).
•
OpenGL nos ofrece 3 funciones para manejar las pilas:
• glLoadIdentity()
• glPushMatrix()
• glPopMatrix().
12. • La función glLoadIdentity sustituye el contenido de la pila por la matriz de identidad.
• La función glPushMatrix() realiza una copia de la matriz superior y la pone encima
de la pila.
• La función glPopMatrix() elimina la matriz superior, quedando en la parte superior de
la pila la matriz que estaba en el momento de llamar a la función glPushMatrix().