20090514 154946 graficacion_u2

255 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
255
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

20090514 154946 graficacion_u2

  1. 1. Transformaciones GeométricasIntroducciónLas transformaciones geométricas modifican la posición y orientación de los objetos y el observador en laescena. Transformaciones como la traslación, rotación y escalado permiten simular el movimiento de losobjetos, así como situar los objetos y el observador en la posición adecuada. Las transformaciones geométricaspermiten cambiar la posición, orientación y tamaño de los objetos. Una transformación geométrica es una función matemática que transforma un punto o conjunto depuntos en otro punto o conjunto de puntos, dentro del sistema de referencia global de la escena. Las trestransformaciones básicas son la traslación, la rotación y el escalado. A partir de estas transformaciones puedenconstruirse otras nuevas. Las transformaciones 3D son una generalización de las 2D.Transformaciones 2DTranslación: Esta operación consiste en modificar la posición de un punto en el plano definido por lascoordenadas (x, y), mediante un movimiento en línea recta desde la posición actual (posición inicial) a laposición final. La traslación no modifica la geometría del objeto, sólo su posición en el espacio. Esta operaciónconsiste en sumar a las coordenadas de cada punto, los valores de los desplazamientos en las direcciones x e y.Formula general: P’=P+TFormula implementada: x’ = x + dx y’ = y + dyA los valores dx y dy se les denomina distancias de traslación. Estas distancias son números reales positivos o negativos.  x 1 0 dx   x Formula matricial: P   y   0 1 dy   y        1  0 0 1   1      
  2. 2. Escalamiento: La operación de escalado modifica la distancia de los puntos sobre los que se aplica, respecto aun punto de referencia. Para definir esta operación son necesarios dos factores de escala, Sx y Sy, según lasdirecciones x e y, y un punto o eje de referencia.Formula general: P’=P x SFormula implementada: x’ = x * dx y’ = y * dy  x  s x 0 0  x Formula matricial: P   y    0    sy 0  y    1  0    0 1  1   donde sx representa el factor de escalamiento en x y sy el factor de escalamiento en y.Rotación: La operación de rotación o giro desplaza un punto a través de la circunferencia definida sobre uncentro determinado, es decir, siguiendo un movimiento circular. Igual que en la traslación, esta operación nomodifica la geometría del objeto, sólo su posición.Formula general: P’ = R * PFormula implementada: x’ = x * cosϴ - y * senϴ y’ = x * senϴ + y * cosϴ  x cos   sin  0  x Formula matricial: P   y    sin     cos  0  y    1  0    0 1  1   
  3. 3. Coordenadas homogéneasLas representaciones matriciales estudiadas son: La traslación se contempla de forma diferente al resto. Paratratar del mismo modo las tres transformaciones, los puntos se expresarán en coordenadas homogéneas, en lugarde las coordenadas cartesianas. En la representación de coordenadas homogéneas, se añade una tercera componente para cada punto. Enlugar de representar un punto con un par de números (x, y), se representa mediante la terna (x, y, W). Se diceque dos conjuntos de coordenadas representan el mismo punto si y sólo si uno es múltiplo de otro. Estasituación conduciría a toda una teoría relacionada con la representación en el espacio 3D que queda al margendel objetivo del curso. Para esto, W siempre valdrá la unidad. El uso de coordenadas homogéneas permiterepresentar todas las transformaciones geométricas uniformemente como productos de matrices.Ventajas de las coordenadas homogéneas: Facilitan las operaciones de concatenación de transformaciones,mediante el producto de matrices. Las tarjetas aceleradoras de gráficos implementan en hardware lasoperaciones matriciales con coordenadas homogéneas, mejorando el rendimiento de estas operaciones. Si lasoperaciones se realizasen por software requerirían un gran poder de cómputo.Transformación ventana-área de vistaConsideremos que tenemos una ventana del mundo real cuyos límites son {x_min, x_max, y_min, y_max}Deseamos mapear a coordenadas de pantalla con límites {u_min, u_max, v_min, v_max}. Para tal propósitodebemos :1.- Trasladar las coordenadas mínimas al origen T(-x_min, -y_min),2.- Aplicar un escalamiento anisotrópico dado por S((u_max-u_min)/(x_max-x_min), (v_max-v_min)/(y_max-y_min)) y3.- Trasladar las coordenadas a un nuevo origen u_min, v_min T(u_min, v_min)Estos pasos dan la siguiente transformación  u _ max  u _ min   0 0 1 0 u _ min   x _ max  x _ min  1 0  x _ min  v _ max  v _ min M  0 1 v _ min .   0 0.0 1  y _ min  y _ max  y _ min   0 0  1   0 0 1   0 0 1      
  4. 4. Al multiplicar P = M[x,y,1]T se obtiene  u _ max  u _ min v _ max  v _ min  P  ( x  x _ min).  u _ min, ( y  y _ min)  v _ min,1  x _ max  x _ min y _ max  y _ min Transformaciones 3DLa translación, escalamiento y rotación en tres dimensiones, son simplemente una extensión de la que se lleva acabo en dos dimensiones. Desde este punto de vista podemos representar:Translación 1 0 0 dx  0 1 0 dy T (dx, dy, dz )    0 0 1 dz    0 0 0 1Escalamiento  sx 0 0 0  0 sy 0 0S ( sx, sy, sz)     0 0 sy 0    0 0 0 1RotaciónPodemos componer rotaciones tridimensionales a partir de las tres matrices de rotación bidimensional sobrecada uno de los ejes x, y, y z. cos   sin  0 0  sin  cos  0 0Rz ( )     0 0 1 0    0 0 0 1 1 0 0 0 0 cos   sin  0Rx ( )    0 sin  cos  0   0 0 0 1
  5. 5. cos  0  sin  0  0 1 0 0Ry ( )     sin  0 cos  0    0 0 0 1Composición de transformaciones 2D y 3DCombinar una serie de operaciones básicas, para generar una operación compleja que involucre cambios deposición, orientación y escala simultáneos sobre un objeto. Esta concatenación se realiza mediante un productode matrices, cada una de las cuales es la matriz de definición de la correspondiente operación básica.Ejemplo

×