jueves, 1 de mayo de 2014

2.5 Ventana y puerto de visión

El puerto de visión es el área de la ventana gráfica en la que se colocan las fotografías de la cámara virtual. Normalmente el puerto de visión coincide con toda el área de la ventana gráfica, pero es posible tener varios puertos de visión en una sola ventana. 

Las transformaciones ventana-puerto de visión, mapean puntos en el mundo real a puntos en la pantalla.

    Coordenadas mundiales                                    Coordenadas de pantalla
                                              

Transformaciones de vision 


               
Ventana en coordenadas mundiales   

 
 Ventana trasladada al origen

 
Ventana escalada al tamaño del área de visión.
 
Traslación hasta la posición final.

2.4 Representación matricial

• Muchas aplicaciones incluyen secuencias de transformaciones geométricas:
– Una animación requiere que los objetos se trasladen y roten en cada fotograma
– Un diseño CAD requiere muchas transformaciones hasta obtener el resultado final

• Debemos formular de forma muy eficiente toda la secuencia de transformaciones


Cada transformación puede representarse como P’ = P M1+ M2

• La matriz M1 contiene la información de ángulos y factores de escala
• La matriz M2 contiene los términos de traslación asociados al punto fijo y al 
centro de rotación
• Para producir una secuencia de transformaciones hay que calcular las nuevas
coordenadas en cada transformación!
P’’ = P’ M3+ M4= ... = P M1M3+ M2M3+ M4
• Buscamos una solución más eficiente que permita combinar las transformaciones 
para obtener directamente lascoordenadas finales a partir de las iniciales

2.3 Tranformacion bidimensional

Las transformaciones bidimensionales se realiza mediante la inclusión de compensaciones en sus propias coordenadas, para generar una nueva posición de coordenadas.

•Un Sistema gráfico debería permitir la definición de objetos o imágenes que incluyan una serie de transformaciones.
•Estas transformaciones son el medio para construir o modificar imágenes u objetos.
•Una rotación, traslación y escalamiento entre otras, son tales transformaciones.
•Cada transformación utiliza un punto (x, y) para generar un nuevo punto (x’, y’).

Traslacion 

 

Las coordenadas (x, y) de un objeto se transforman a (x', y') de acuerdo a las fórmulas:
X'=X+Tx,   Y' =Y+Ty
El par (Tx, Ty) se conoce como vector de traslación 
 


Escalamiento 


El escalamiento modifica el tamaño de un polígono. Para obtener este efecto, se multiplica cada par 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').
Las fórmulas son
 
 

Escalamiento respecto a un punto fijo

Se puede llevar a cabo un escalamiento respecto a un punto fijo trasladando primero ese punto al origen, después escalando y luego regresando el objeto a la posición original.
Las ecuaciones son
 
Reacomodando
 
 

Rotacion 

La rotación gira los puntos de una figura alrededor de un punto fijo. De la figura se obtiene:
 
Simplificando: 
 

2.2 Representación y trazo de polígonos

LOS POLIGONOS: Son figuras planas cerradas y simples que esta formada por segmentos.

Los elementos de los polígonos son: Lados, Vertices, Diagonales Y Ángulos Interiores, Exteriores Y Centrales.

Polígono (lados rectos)No es un polígono
(tiene una curva)

No es un polígono
(abierto, no cerrado)
La librería gráfica OpenGL es por naturaleza una librería orientada al trabajo con modelos poliédricos, por tanto nos será fácil realizar representación de esta naturaleza. Puntualizaremos que se trata de una librería de funciones orientada principalmente a modelos interactivos, por ello se premia la rapidez frente al espacio, el tipo de representación poligonal que empleara será por tanto explícita.

Las definiciones de primitivas poligonales en OpenGL se encierran entre las llamadas a las funciones:

glBegin(GLEnum tipo_primitiva) y glEnd(void). Entre dichas funciones deberemos especificar la lista de vértices que componen nuestro polígono. La función para pasar las coordenadas de cada vértice es glVertex3fv(GLFloat *coor), donde ‘coor’ es un vector que contiene las tres coordenadas del vértice.




Unidad 2

Graficación 2D

2.1 Trazo de líneas rectas

La linea es uno de los terminos indefinidos de la geometria. Las lineas se extienden indefinitivamente y no tienen ni espesor ni anchura.

Es una sucesión continua de puntos trazados, como por ejemplo un trazo o un guion
 


  
Una línea recta debe dibujarse como una sucesión de píxeles. 
Efecto de escalera que se produce cuando se genera una línea como una serie de píxeles.

Algoritmos para el trazo de lineas rectas:

•Algoritmo DDA, algoritmo incremental básico con aritmética de punto flotante.                   se usa para la interpolación lineal de variables sobre un intervalo entre un punto de comienzo y un punto de fin. Los DDAs se usan para rastreo de lineas, triangulos y polígonos.


•Algoritmo de Bresenham, algoritmo incremental complejo con sólo aritmética entera.
El algoritmo de Bresenham es un algoritmo creado para dibujar rectas en los dispositivos de gráficos rasterizados, como por ejemplo un monitor de ordenador, que determina qué pixeles se rellenarán, en función de la inclinación del ángulo de la recta a dibujar.