Transformaciones

Solo disponible en BuenasTareas
  • Páginas : 14 (3453 palabras )
  • Descarga(s) : 4
  • Publicado : 1 de junio de 2010
Leer documento completo
Vista previa del texto
TEMA 3: Transformaciones 2D

Índice
1. Transformaciones Básicas
1. 2. 3. Traslación Rotación Escalado

2. 3.

Representación Matricial y Coordenadas Homogéneas Otras Transformaciones
1. 2. Reflexión Afilamiento

4. 5.

Transformación de Ventana a Pantalla Algoritmos de Recorte
1. 2. 3. Recorte de Puntos Recorte de Líneas Recorte de Polígonos

Transformaciones geométricas
• •Con los algoritmos de primitivas ya podemos dibujar en pantalla El siguiente paso consiste en permitir modificar o manipular dichas primitivas Transformaciones Geométricas
– – – Para poder implementar aplicaciones de diseño Para poder realizar animaciones Para interactuar con la escena



Las transformaciones básicas que se necesitan son:
– – – Traslación: cambios en la posición Rotación:cambios en la orientación Escalado: cambios en el tamaño

Traslación
• Reposiciona un objeto desplazándolo a las nuevas coordenadas P’ = (x’, y’) P = (x, y)

⎧ x' = x + t x ⎨ ⎩ y' = y + t y
• En forma matricial:

ty

tx
T = (t x , t y )

P = ( x, y )

P' = ( x' , y ' )
P' = P + T

• • •

Es una transformación rígida

el objeto no se deforma

Para trasladar líneas rectastrasladamos sólo sus extremos Para trasladar polígonos, trasladamos sólo sus vértices y redibujamos

Rotación con respecto al origen
• • La posición de un punto es rotada alrededor del origen de coordenadas ¿Cómo sacamos la fórmula para obtener P’ a partir de P y del ángulo? P’ = (x’, y’)



R

P = (x, y)


• Solución: expresándolo en polares

⎧ x = R cos α ⎨ ⎩ y = R sin α
• En formamatricial:

⎧ x' = R cos(α + θ ) = ... = x cos θ − y sin θ ⎨ ⎩ y ' = R sin(α + θ ) = ... = x sin θ + y cos θ

P = ( x, y )

P' = ( x' , y ' )
P' = P ⋅ R

⎛ cosθ R=⎜ ⎜ − sin θ ⎝

sin θ ⎞ ⎟ cosθ ⎟ ⎠

Rotación general
• ¿Cómo será la fórmula general cuando el punto sobre el que se rota no es el origen, sino un punto cualquiera (xc, yc)? P’ = (x’, y’)

⎧ x' = xc + ( x − xc ) cos θ − (y − yc ) sin θ ⎨ ⎩ y ' = yc + ( x − xc ) sin θ + ( y − yc ) cos θ
• • Encontrar la forma matricial para este caso es un poco complicado Más tarde lo haremos de otra forma mucho más fácil


(xc, yc)

P = (x, y)

• • •

Es una transformación rígida

el objeto no se deforma

Para rotar líneas rectas rotamos sólo sus extremos Para rotar polígonos, rotamos sólo sus vértices yredibujamos

Escalado con respecto al origen
P’ = (x’, y’) • • La posición del punto se multiplica por una constante Hay que especificar dos factores de escala, sx y sy

⎧ x' = sx x ⎨ ⎩ y' = sy y
• En forma matricial:

P = (x, y)

P = ( x, y )


P' = ( x' , y ' )

⎛ sx S =⎜ ⎜0 ⎝


0⎞ ⎟ sy ⎟ ⎠

P' = P ⋅ S

Según el valor del factor de escala s:
– – – Si s > 1 Si s==1 Si s < 1aumento de tamaño no cambia de tamaño disminución de tamaño

Si sx == sy

escalado uniforme



Si sx != sy

escalado diferencial

Escalado general
• NOTA: si el origen de coordenadas no se encuentra en el interior del objeto, se produce un desplazamiento! Para evitarlo, se usa un punto fijo, y se escala a partir de él



⎧ x' = xc + s x ( x − xc ) ⎨ ⎩ y ' = yc + s y ( y − yc )
•x

2x

El punto fijo podría ser el centro del objeto, o uno de sus vértices, o tambén un punto arbitrario

• • •

Es una transformación rígida

el objeto no se deforma

Para escalar líneas rectas escalamos sólo sus extremos Para escalar polígonos, escalamos sólo sus vértices y redibujamos

Representación matricial
• Muchas aplicaciones incluyen secuencias de transformacionesgeomé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...
tracking img