You are on page 1of 20

Las lneas en OpenGL son en realidad segmentos acotados, en lugar de la idea matemtica de rectas infinitas.

Su definicin viene dada por la especificacin del valor de sus dos vrtices extremos.

Consideremos una lnea recta que pasa por dos puntos P1=[20, 20] y [25,20]. Podemos calcular la lnea recta que pasa por estos puntos como (y-y1) = (y2-y1)*(x-x1)/(x2-x1) Sustituyendo los valores tenemos (y-20) = (21-20)*(x-20)/(25-20) Finalmente tenemos y = 0.2 x + 16

glBegin(GL_LINE_STRIP); glVertex3f(0.0f, 0.0f, 0.0f); // V0 glVertex3f(2.0f, 1.0f, 0.0f); // V1 glVertex3f(2.0f, 2.0f, 0.0f); // V2 glEnd();

Este cdigo construira las lneas como se ve en la Ilustracin

OpenGL maneja polgonos correctamente siempre y cuando sean simples y convexos. Si ese no es el caso, OpenGL dibuja cosas raras. En lugar de dibujar polgonos rellenados, OpenGL puede dibujar, o bien solo las esquinas o bien solo los segmentos del borde. Eso se realiza con la funcin glPolygonMode() a la cual hay que pasar tambin cul de las dos posibles caras del polgono se quiere pintar. Adems se pueden llenar los polgonos con patrones que no detallamos por el momento. glEnable() glPolygonStipple()

glBegin(GL_TRIANGLES); glVertex3f(0.0f, 0.0f, 0.0f); // V0 glVertex3f(1.0f, 1.0f, 0.0f); // V1 glVertex3f(2.0f, 0.0f, 0.0f); // V2 glVertex3f(-1.0f, 0.0f, 0.0f); // V3 glVertex3f(-3.0f, 2.0f, 0.0f); // V4 glVertex3f(-2.0f, 0.0f, 0.0f); // V5 glEnd();

Las funciones de transformaciones geomtricas que se pueden encontrar en todos los paquetes grficos, son aquellas que se usan para la traslacin, la rotacin y el cambio de escala

Se realiza una traslacin de un punto sencillo de coordenadas, mediante la inclusin de compensaciones en sus propias coordenadas, para generar una nueva posicin de coordenadas. En efecto, se est moviendo la posicin del punto original a lo largo de una trayectoria en lnea recta hacia su nueva localizacin.

Para trasladar una posicin bidimensional, aadimos distancias de traslacin tKy t a las coordenadas originales (x, v) para obtener la nueva posicin de coordenadas (x\y*)

x =x + tx.

La siguiente rutina ilustra las operaciones de traslacin. Un vector de traslacin de entrada se usa para mover los vrtices de un polgono desde una posicin de un universo de coordenadas a otro, y las rutinas de OpenGL se usan para regenerar el polgono trasladado.

Se genera una transformacin de rotacin de un objeto mediante la especificacin de un eje de rotacin y un ngulo de rotacin. Todos los puntos del objeto son entonces transformados a la nueva posicin, mediante la rotacin de puntos con el ngulo especificado sobre el eje de rotacin.

X=xcos(T)-y sin(T) Y=xsin(T)-ycos(T)

P=R.P Donde R=[ cos(T) sin(T); sin(T) cos(T)]

Altera el tamao del objeto Se lleva a cabo multiplicando las posiciones de os objetos x, y por los factores de escala sx, y sy para producir las coordenadas transformadas x,y. X=X.sx Y=Y.xy Valores positivos cambia el tamao, valores negativos reflejan sobre uno o mas ejes.

Sx cambia la escala en la direccin en x Sy cambia la escala en la direccin y Valores inferiores a 1 reducen el tamao del objeto Valores superiores a 1 producen alargamientos. Cuando sx y sy son iguales se produce un cambio de escala uniforme, de los contrario resultan enun cambio de escala diferente.

MATRIZ DE CAMBIO DE ESCALA

x' s x y ' 0 P' 1 0

0 sy 0

0 x y 0 1 1

You might also like