Tutorial Graficacion

Páginas: 6 (1434 palabras) Publicado: 18 de febrero de 2013
CAPITULO

1

Transformaciones Geométricas
en dos dimensiones

1.1 Traslación
Una traslación se aplica a un objeto para reposicionarlo a lo largo
de una línea recta, desde una ubicación de coordenadas a otra.

x' = x + t x

y' = y + t y

El par (tx, ty) se llama vector de traslación.
En forma matricial:

x 
P =  1
 x2 

 x′ 
P′ =  1 

 x2 

t x 
T = t y 

P′ = P + T

1

y

P`
T

P
x
La traslación es una transformación de cuerpo rígido que mueve al
objeto sin deformarlo.

y

y

10

10

5

5

5

10

15

20

x

5

10

15

20

x

T=(-5.50, 3.75)

2

Ejemplo Utilizando OpenGl

En Opengl, para la traslación tanto en dos dimensiones(2D) como en tres
dimensiones(3D) se utiliza la instrucciónglTranslated, en sus versiones de
parámetros tipo float, glTranslatef, como en su versión de parámetros tipo
double, glTranslated. Sus prototipos son los siguientes:
void glTranslatef(GL float x, GL float y, GL float z)
void glTranslated(GL double x, GL double y, GL double z)
glTranslate mueve el sistema de coordenadas al punto especificado por
x,y,z. La matriz activa es multiplicada por lamatriz de traslación. Es posible
utilizar glPushMatrix y glPopMatrix para guardar y recuperar el sistema de
coordenadas.

3

2
1

1

2

3

Figura 1.1: Dibujo de un triángulo en 2D
Supongamos que deseamos dibujar un triangulo en la posición indicada en
la figura 1.1. Para realizar esto utilizamos el siguiente código.
glBegin(GL_TRIANGLES);
glVertex3f(1.0f,1.0f,0.0f);glVertex3f(2.0f,1.0f,0.0f);
glVertex3f(1.5f,1.5f,0.0f);
glEnd();
Al ejecutar nuestro programa obtenemos la salida indicada en la figura 1.2.
Se han agregado un par de ejes coordenados solo para referencia.

3

Figura 1.2 : Triángulo en la posición (1,1)
Para trasladar nuestro sistema de coordenadas a cualquier otro punto de
nuestro
espacio utilizamos la función glTranslate. Agreguemos unatraslación a la posición (2,2) antes de nuestro dibujo, esto es:
glTranslatef(2.0f,2.0f,2.0f);
glBegin(GL_TRIANGLES);
glVertex3f(1.0f,1.0f,0.0f);
glVertex3f(2.0f,1.0f,0.0f);
glVertex3f(1.5f,1.5f,0.0f);
glEnd();

Figura 1.3: Triángulo en la posición (3,3)
La figura obtenida ahora es la mostrada en la figura 1.3, en ella notamos
que nuestro triangulo se ha desplazado a la posición (3,3) esto es yaque él
triángulo se dibujaba originalmente en la posición (1,1) más la traslación

4

efectuada a la posición (2,2). Debemos recordar que nuestro sistema esta
ubicado a hora en la posición (2,2) luego si efectuamos posterior a esta
traslación otros dibujos están quedarán referidos a la posición (2,2), esto
puede causar problemas para el dibujo de varios objetos en nuestra
imagen,supongamos que ahora queremos dibujar otro triangulo en la
posición original (-3,-3). Si utilizamos el mismo código, nuestro resultado seria
el de la figura 1.4.

Figura 1.4 : Triángulo en la posición (-3,-3)
Como podemos ver en la figura 1.4, el resultado final no es el resultado
deseado, esto es porque nuestra figura original estaba referenciada a
nuestra coordenadas originales, para solucionareste problema y poder
conservar las coordenadas del modelo podemos utilizar ahora las funciones
glPushMatrix y glPopMatrix para guardar y recuperar nuestro sistema de
coordenadas. Nuestro código debería ser el siguiente;.
glPushMatrix();
glTranslatef(2.0f,2.0f,2.0f);
glBegin(GL_TRIANGLES);
glVertex2f(1.0f,1.0f);
glVertex2f(3.0f,1.0f);
glVertex2f(2.0f,2.0f);
glEnd();
glPopMatrix();glBegin(GL_TRIANGLES);
glVertex2f(-3.0f,-3.0f);
glVertex2f(-1.0f,-3.0f);
glVertex2f(-2.0f,-2.0f);
glEnd();
El resultado final es el deseado originalmente y se muestra en la figura 1.5
ya que nos hemos asegurado de guardar el sistema de coordenadas antes
de dibujar el primer triangulo.

5

Figura 1.5 : Triangulo en la posición (-3,-3)

6

1.2 Rotación
La rotación se aplica a un...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • graficacion
  • Graficacion
  • Graficacion
  • Graficacion
  • Graficacion
  • Graficacion
  • Graficacion
  • Graficacion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS