Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Transformaciones Geometricas Computacion Grafica
Transformaciones Geometricas Computacion Grafica
𝑥′ = 𝑥 + 𝑡𝑥 𝑦′ = 𝑦 + 𝑡𝑦
Podemos expresar las Ecuaciones de traslación como una única ecuación de una matriz,
usando los siguientes vectores columna para representar posiciones de coordenadas y el
vector de traslación.
P′ = P + T
La traslación es un tipo de transformación de sólido-rígido que mueve objetos sin
deformarlos. Esto es, cada punto de un objeto es trasladado en la misma medida. Un
segmento en línea recta es trasladado mediante la aplicación de una ecuación de
transformación a cada uno de los puntos finales de la línea y redibujando la línea entre los
dos nuevos puntos finales. Un polígono se traslada de forma similar. Se añade un vector
de traslación a la posición de las coordenadas para cada vértice y después se regenera el
polígono usando un nuevo conjunto de coordenadas de vértices.
Rotaciones bidimensionales
Se genera una transformación de rotación de un objeto mediante la especificación de un
eje de rotación y un ángulo de rotación. Todos los puntos del objeto son entonces
transformados a la nueva posición, mediante la rotación de puntos con el ángulo
especificado sobre el eje de rotación. Una rotación bidimensional de un objeto se obtiene
mediante la recolocación del objeto a lo largo de una trayectoria circular sobre el plano xy.
En este caso, se está rotando el objeto sobre un eje de rotación que es perpendicular al
plano (paralelo al eje de coordenadas z). Los parámetros para la rotación bidimensional
son el ángulo de rotaciónθ, y una posición (xr , yr )llamada punto de rotación (o punto de
pivote) sobre los cuales el objeto va a ser rotado. El punto de pivote es la posición de
intersección entre el eje de coordenadas y el plano xy. Un valor positivo para el ángulo θ
define una rotación en sentido contrario a las agujas del reloj sobre el punto de pivote, y
un valor negativo rota objetos en el sentido de las agujas del reloj.
Para simplificar la explicación del método básico, primero hay que determinar las
ecuaciones de transformación para la rotación de un punto de posición P, cuando el punto
de pivote está en el origen de coordenadas. La relación entre el angular y las
coordenadas de las posiciones originales y transformadas se muestra en la siguiente
Figura.
En esta figura, r es la distancia constante del punto respecto del origen, el ángulo ϕes la
posición angular original del punto desde la horizontal, y θes el ángulo de rotación.
Usando identidades trigonométricas estándar, podemos expresar las coordenadas
transformadas en función de los ángulos θ y ϕ como:
x′ = x. cosθ − y. senθ
y′ = x. senθ + y. cosθ
Con las representaciones del vector columna, para posiciones de coordenadas, podemos
escribir las ecuaciones de rotación en forma de matriz donde la matriz de rotación es:
Cada punto de un objeto se rota un mismo ángulo. Un segmento en línea recta se rota
mediante la aplicación de las ecuaciones de rotación a cada uno de sus puntos finales o
extremos y redibujando luego la línea entre los nuevos extremos. Un polígono se rota
desplazando cada uno de sus vértices usando el ángulo de rotación especificado y
después regenerando el polígono usando los nuevos vértices. Rotamos una curva
reposicionando los puntos de definición para la curva y redibujando después. Un círculo o
una elipse, por ejemplo, pueden rotarse sobre un punto de pivote no centrado, moviendo
la posición del centro a través del arco que sustenta el ángulo de rotación especificado. Y
podemos rotar una elipse sobre su propio centro de coordenadas, sencillamente rotando
el eje mayor y el eje menor.
x = x. Sx y = y. Sy
Cualquier valor positivo puede ser asignado a los valores de escalaSx y Sy . Valores
inferiores a 1 reducen el tamaño de los objetos; valores superiores a 1 producen
alargamientos. Especificando un valor de 1 tanto para Sx como para Sy se deja el tamaño
del objeto inalterado. Cuando a Sx y Sy se les asigna el mismo valor, se produce un
cambio de escala uniforme que mantiene las proporciones relativas del objeto. Valores
desiguales de Sx y Sy resultan en un cambio de escala diferente que es a menudo usado
en aplicaciones de diseño, donde los dibujos son construidos desde unas pocas formas
básicas que pueden ajustarse mediante escalas y transformaciones posicionales. En
algunos sistemas, los valores negativos también pueden especificarse mediante
parámetros de escala. Ello no sólo le da un nuevo tamaño al objeto, además lo refleja
sobre uno o más ejes de coordenadas.
Podemos controlar la localización de un objeto cambiado de escala eligiendo una
posición, llamada punto fijo, que debe permanecer sin cambios después de la
transformación de escala. Las coordenadas para el punto fijo, (xf , yf )son a menudo
elegidas de la posición de algún objeto, tal como su centroide, aunque puede elegirse
cualquier otra posición espacial. A los objetos se les da ahora otro tamaño mediante el
cambio de escala de las distancias entre los puntos de los objetos y el punto fijo. Para la
posición de coordenadas (x, y)las coordenadas de escala (x′, y′) se calculan a partir de las
siguientes relaciones.
x′ = x. Sx + xf (1 − Sx )
y′ = y. Sy + yf (1 − Sy )
Incluir las coordenadas para un punto fijo en las ecuaciones de escala es similar a incluir
coordenadas para un punto de pivote en ecuaciones de rotación. Los polígonos cambian
de escala mediante la aplicación de las Ecuaciones de cambio de escala a cada vértice,
regenerando después el polígono usando los vértices transformados. Para otros objetos,
aplicamos las ecuaciones de transformación de escala a los parámetros que definen el
objeto. Para cambiar el tamaño de un círculo, podemos reducir su radio y calcular las
nuevas posiciones de las coordenadas del contorno de la circunferencia. Y para cambiar
el tamaño de una elipse, aplicamos el escalado de los parámetros sobre sus ejes para
luego trazar la nueva posición de la elipse sobre su centro de coordenadas.
Hemos visto anteriormente que cada una de las tres transformaciones bidimensionales
básicas (traslación, rotación y cambio de escala) pueden expresarse en forma de matriz
general:
P′ = M1 . P + M2
con posiciones de coordenadas P y P' representados en vectores columnas. La matriz M1
es una matriz de 2 por 2 que contiene factores multiplicativos, y M2 , es una matriz
columna de 2 elementos que contiene los términos traslacionales. Para la traslación, M1 es
la matriz identidad. Para la rotación o el cambio de escala, M2 , contiene los términos
traslacionales asociados con el punto de pivote o con el punto fijo de escalado. Para
producir una secuencia de transformaciones con esas ecuaciones, como por ejemplo, un
cambio de escala seguido de una rotación y luego una traslación, podemos calcular las
coordenadas transformadas haciendo una cosa cada vez. Primero, se cambia la escala
de la posición de las coordenadas, luego dichas coordenadas se giran y, finalmente, las
coordenadas rotadas son trasladadas. Sin embargo, una forma más eficiente de hacerlo,
es combinar transformaciones de tal suerte que la posición final de las coordenadas se
obtenga directamente a partir de las coordenadas iniciales, sin calcular valores de
coordenadas intermedios. Podemos hacer esto, re formulando la Ecuación anterior para
eliminar la operación de suma de matrices.
Coordenadas homogéneas
Los términos multiplicativos y traslacionales para una transformación geométrica
bidimensional pueden ser combinados dentro de una matriz sencilla, si expandimos la
representación a matrices de 3 por 3. En ese caso, podemos usar la tercera columna de
la matriz de transformación para los términos traslacionales, y todas las ecuaciones de
transformación pueden expresarse como multiplicación de matrices. Pero para poder
hacer esto, necesitamos además expandir la representación matricial para posiciones de
coordenadas bidimensionales a una matriz columna de 3 elementos. Una técnica
estándar para lograr esto consiste en expandir cada representación de posición-
coordenada bidimensional (x, y) en representaciones de 3 elementos (xh , yh , h) llamadas
coordenadas homogéneas, donde el parámetro homogéneo h es un valor distinto de cero
tal que:
x y
x = hh y y = hh
Por tanto, una representación de coordenadas homogéneas bidimensionales, puede
escribirse también como (x. h, y. h, h). Para transformaciones geométricas, podemos elegir
el parámetro homogéneo h para que sea cualquier valor distinto de cero. Así, hay un
número infinito de representaciones homogéneas equivalentes para cada punto de
coordenadas (x,y). Una elección acertada es fijar h=1. Cada posición bidimensional se
representa con coordenadas homogéneas (x, y, 1). Se necesitan otros valores para el
parámetro h, por ejemplo en formulaciones de matrices para mostrar transformaciones
tridimensionales.
El término coordenadas homogéneas se usa en matemáticas para referirse al efecto de
esta representación en coordenadas cartesianas. Cuando un punto cartesiano (x, y) se
convierte a representación homogénea (xh , yh , h)las ecuaciones que contienen x e y tales
como f(x, y) = 0, se convierten en ecuaciones homogéneas en los tres parámetros
(xh , yh , h). Esto significa precisamente, que si cada uno de los tres parámetros es
sustituido por cualquier valor, v veces, dicho valor v puede ser despejado de la ecuación.
Expresar posiciones en coordenadas homogéneas nos permite representar todas las
ecuaciones de transformaciones geométricas como multiplicación de matrices, que es el
método estándar usado en los sistemas gráficos. Las posiciones de coordenadas
bidimensionales se representan con vectores columna de tres elementos, y las
operaciones de transformación bidimensionales se representan como matrices de 3 por 3.
Matriz de traslación bidimensional
Usando la aproximación de coordenadas homogéneas, podemos representar las
ecuaciones para una traslación bidimensional de una posición de coordenadas usando la
siguiente matriz de multiplicación.
P′ = R(Θ). P
En algunas bibliotecas gráficas, una función de rotación bidimensional genera sólo
rotaciones sobre el eje de coordenadas. Una rotación sobre cualquier otro punto de pivote
debe representarse como una secuencia de operaciones de transformación. Una
alternativa en paquetes gráficos es ofrecer parámetros adicionales en la rutina de rotación
para las coordenadas del punto de pivote. Una rutina de rotación que incluye parámetros
del punto de pivote, luego establece una matriz general de rotación, sin la necesidad de
invocar una sucesión de funciones de transformación.
Matriz de cambio de escala bidimensional
Finalmente, una transformación de cambio de escala relativa al origen de coordenadas
puede ahora expresarse como la matriz de multiplicación:
Algunas bibliotecas ofrecen una función de cambio de escala que puede generar sólo un
cambio de escala con respecto al origen de coordenadas, como en la Ecuación 5.21. En
este caso, una transformación de cambio de escala relativa a otra posición de referencia
es llevada a cabo como una sucesión de operaciones de transformación. Sin embargo,
otros sistemas sí incluyen una rutina de cambio de escala general que puede construir
matrices homogéneas para realizar cambios de escala con respecto a puntos fijos
designados.
Transformaciones inversas
Para la traslación, obtenemos la matriz inversa mediante la negación de las distancias de
traslación. Así, si tenemos distancias de traslación bidimensionales t x y t y , la matriz de
traslación inversa es:
La matriz inversa genera una transformación de escala opuesta, de tal forma que la
multiplicación de cualquier matriz de escala por su inversa produce la matriz identidad.
3.3. Transformaciones Compuestas bidimensionales
Usando la representación de matrices, podemos establecer una secuencia de
transformaciones como matriz de transformación compuesta calculando el producto de las
transformaciones individuales. Formando productos con las matrices de transformación es
común referirse a ello como concatenación, o composición, de matrices. Desde una
posición de coordenadas representada como una matriz columna homogénea, debemos
premultiplicar la matriz columna por las matrices, representando una secuencia de
transformaciones. Y, como muchas posiciones de una escena son normalmente
transformadas por la misma secuencia, es más eficiente primero multiplicar la
transformación de matrices para formar una única matriz compuesta. Así, si queremos
aplicar dos transformaciones a la posición de un punto P, la ubicación transformada se
calcularía como:
P′ = M 2 . M 1 . P
P′ = M. P
La posición de coordenadas se transforma usando la matriz compuesta M, mejor que
aplicando las transformaciones individuales M 1 y luego M 2.
Esta transformación conserva los valores x, pero “da la vuelta” a las posiciones de
coordenadas de valores y. La orientación resultante de un objeto después de haber sido
reflejado sobre el eje x se muestra en la Figura siguiente.
Aquí, primero llevamos a cabo una rotación en el sentido de las agujas del reloj con
respecto al origen a través de un ángulo de 45°, que rota la línea y = x y sobre el eje x. A
continuación realizamos una reflexión con respecto al eje x. El paso final consiste en girar
la línea y = x de vuelta a su posición original con una rotación de 45° en sentido contrario
al de las agujas del reloj. Otra secuencia de transformaciones equivalente consiste en
reflejar primero el objeto sobre el eje x y luego rotarlo 90° en el sentido de las agujas del
reloj.
Ejercicio obtener una matriz para la reflexión con respecto a la línea 𝐲 = −𝐱.
Las reflexiones sobre cualquier línea y = mx + b en el plano xy pueden realizarse con una
combinación de transformaciones traslación-rotación-reflexión. En general, primero
trasladamos la línea de tal forma que pase por el origen. Luego podemos girar la línea
hacia uno de los ejes de coordenadas y reflejarla sobre dicho eje. Finalmente,
reestablecemos la línea a su posición original con las transformaciones inversas de
rotación y traslación.
Podemos implementar reflexiones con respecto a los ejes de coordenadas o al origen de
coordenadas como transformaciones de escala con factores de escala negativos.
Además, los elementos de la matriz de reflexión pueden definirse con valores distintos de
± 1. Un parámetro de reflexión de una magnitud superior a 1 cambia la imagen del espejo
por un punto más alejado del eje de reflexión, y un parámetro cuya magnitud es inferior a
1 trae la imagen del espejo a un punto más cercano al eje de reflexión. Así, un objeto
reflejado puede también agrandarse, reducirse o distorsionarse.
Inclinar
Una transformación que distorsiona la forma de un objeto de tal manera que la forma
obtenida aparece como si el objeto estuviera compuesto por capas internas que se
hubieran obtenido resbalando unas sobre otras es lo que se denomina inclinación. Dos
transformaciones comunes para producir una inclinación son aquellas que desplazan los
valores de las coordenadas x y las que desplazan los valores de y.
Una inclinación en la dirección x respecto al eje x se produce con la matriz de
transformación:
Los valores negativos para shxcambian las posiciones de las coordenadas hacia la
izquierda.