2.2 Representacion y trazo de poligonos



La ecuación de un círculo centrado en el origen es:

x2 + y2 = R2

por lo cual, una primera aproximación para discretizar un círculo es resolver la ecuación
y = ±(R2 - x2)½; xZ, x entre 0 y R1

También se pueden usar las ecuaciones (R cos φ, R sen φ ) con φ creciendo desde 0° a 90°, con esto se reduce el espaciado, pero tampoco es tan eficiente, ya que usa aritmética de punto flotante y llamadas a funciones.


Se puede aprovechar la simetría del círculo para sólo calcular uno de los 8 segmentos de 45º y luego con éste determinar los demás octantes. La siguiente figura y procedimiento resumen el proceso: 

procedure puntos_circulo (x, y:real; valor:integer); 
begin
escribir_pixel(x, y, valor);
escribir_pixel(y, x, valor);
escribir_pixel(y, -x, valor);
escribir_pixel(x, -y, valor);
escribir_pixel(-x, -y, valor);
escribir_pixel(-y, -x, valor);
escribir_pixel(-y, x, valor);
escribir_pixel(-x, y, valor); 
end;

 

2.3 Transformacion bidimensional



Con frecuencia, a partir de figuras, se requiere presentarlas, realizando transformaciones en ellas.



Las transformaciones permiten el redibujado de formas sin tener que calcular individualmente los valores para su representación.

Las transformaciones geometricas son procedimientos para calcular nuevas posiciones de coordenadas de estos puntos, como lo requiere un cambio especificado en tamaño y orientación del objeto


Las transformaciones básicas son:


  • Traslación
  • Rotación
  • Escalamiento

2.3.1 Traslacion

Una traslación es el movimiento en línea recta de un objeto de una posición a otra. Se traslada un punto de la posición coordenada (x,y) a una nueva posición (x', y') agregando distancias de traslación, Tx y Ty , a las coordenadas originales:

x' = x + Tx, y' = y + Ty


El par de distancia de traslación (Tx,Ty) se denomina también vector de traslación o bien vector de cambio. 

Los polígonos se trasladan agregando las distancias de traslación especificadas a las coordenadas de cada punto extremo de la línea en el objeto.
Los objetos trazados con curvas se trasladan cambiando las coordenadas definidoras del objeto. Para cambiar la posición de una circunferencia o elipse, se trasladan las coordenadas centrales y se vuelve a trazar la figura en la nueva localidad. 

Las distancias de traslación pueden especificarse como cualquier numero real (positivo, negativo o cero). Si un objeto se traslada más allá de los limites del despliegue en coordenadas del dispositivo, el sistema podría retornar un mensaje de error, suprimir partes del objeto que sobrepasan los limites del despliegue o presentar una imagen distorsionada.   


Los sistemas que no contienen provisiones para manejar coordenadas que sobrepasan los limites del despliegue distorsionaran las figuras debido a que los valores coordenados desbordan las localidades de la memoria. Esto produce un efecto conocido como doblez en redondo, donde los puntos que sobrepasan los limites coordenados en una dirección se desplegaran en el otro lado del dispositivo del dispositivo de despliegue

2.3.2 Escalación


Una transformación para alterar el tamaño de un objeto se denomina escalacion. Esta operación puede efectuarse con polígonos multiplicando los valores coordenados (x,y) de cada vertice de frontera por los factores de escalacion Sx y Sy para producir las coordenadas transformadas (x', y').

x' = x.Sx , y' = y.Sx

El factor de escalacion Sx hace objetos a escala en la dirección x, mientras que Sy lo hace en la dirección y.

Cualquier valor numérico positivo puede asignarse a los factores de escalacion Sx y Sy. Los valores menores que 1 reducen el tamaño de los objetos; los valores mayores que 1 producen un agrandamiento. Si se especifica un valor de 1 para Sx y Sy se mantiene inalterado el tamaño de los objetos. Cuando a Sx y Sy se les asigna el mismo valor, se produce una escalacion uniforme, la cual mantiene las propiedades relativas del objeto a escala. A menudo se utilizan valores desiguales de Sx y Sy en aplicaciones de diseño, donde las figuras se construyen a partir de unas cuantas formas básicas que pueden ser transformadas por transformaciones de escalacion

2.4 REPRESENTACION MATRICIAL




La representacion matricial facilita el cómputo de las transformaciones a simples multiplicaciones matriciales
 
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 las coordenadas finales a partir de las iniciales

Ejemplos:
  • Escalación
 
  • Traslación
  • Rotación

2.5 Ventana y puerto de visión



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