Transformación 2D
La transformación significa cambiar algunos gráficos en otra cosa mediante la aplicación de reglas. Podemos tener varios tipos de transformaciones como traslación, escalado hacia arriba o hacia abajo, rotación, corte, etc. Cuando una transformación tiene lugar en un plano 2D, se llama transformación 2D.
Las transformaciones juegan un papel importante en los gráficos por computadora para reposicionar los gráficos en la pantalla y cambiar su tamaño u orientación.
Coordenadas homogéneas
Para realizar una secuencia de transformación como la traducción seguida de rotación y escalado, necesitamos seguir un proceso secuencial:
- Traducir las coordenadas,
- Gire las coordenadas trasladadas y luego
- Escale las coordenadas giradas para completar la transformación compuesta.
Para acortar este proceso, tenemos que usar una matriz de transformación de 3 × 3 en lugar de una matriz de transformación de 2 × 2. Para convertir una matriz de 2 × 2 en una matriz de 3 × 3, tenemos que agregar una coordenada ficticia adicional W.
De esta manera, podemos representar el punto con 3 números en lugar de 2 números, lo que se llama Homogenous Coordinatesistema. En este sistema, podemos representar todas las ecuaciones de transformación en la multiplicación de matrices. Cualquier punto cartesiano P (X, Y) se puede convertir en coordenadas homogéneas mediante P '(X h , Y h , h).
Traducción
Una traducción mueve un objeto a una posición diferente en la pantalla. Puede trasladar un punto en 2D agregando la coordenada de traslación (t x , t y ) a la coordenada original (X, Y) para obtener la nueva coordenada (X ', Y').
De la figura anterior, puede escribir eso:
X’ = X + tx
Y’ = Y + ty
El par (t x , t y ) se denomina vector de traslación o vector de desplazamiento. Las ecuaciones anteriores también se pueden representar utilizando los vectores de columna.
$ P = \ frac {[X]} {[Y]} $ p '= $ \ frac {[X']} {[Y ']} $ T = $ \ frac {[t_ {x}]} {[ t_ {y}]} $
Podemos escribirlo como ...
P’ = P + T
Rotación
En rotación, rotamos el objeto en un ángulo particular θ (theta) desde su origen. En la siguiente figura, podemos ver que el punto P (X, Y) está ubicado en el ángulo φ de la coordenada X horizontal con una distancia r del origen.
Supongamos que desea rotarlo en el ángulo θ. Después de rotarlo a una nueva ubicación, obtendrá un nuevo punto P '(X', Y ').
Usando trigonométrica estándar, la coordenada original del punto P (X, Y) se puede representar como -
$ X = r \, cos \, \ phi ...... (1) $
$ Y = r \, sin \, \ phi ...... (2) $
De la misma manera podemos representar el punto P '(X', Y ') como -
$ {x} '= r \: cos \: \ left (\ phi \: + \: \ theta \ right) = r \: cos \: \ phi \: cos \: \ theta \: - \: r \ : sin \: \ phi \: sin \: \ theta ....... (3) $
$ {y} '= r \: sin \: \ left (\ phi \: + \: \ theta \ right) = r \: cos \: \ phi \: sin \: \ theta \: + \: r \ : sin \: \ phi \: cos \: \ theta ....... (4) $
Sustituyendo la ecuación (1) y (2) en (3) y (4) respectivamente, obtendremos
$ {x} '= x \: cos \: \ theta - \: y \: sin \: \ theta $
$ {y} '= x \: sin \: \ theta + \: y \: cos \: \ theta $
Representando la ecuación anterior en forma de matriz,
$$ [X 'Y'] = [XY] \ begin {bmatrix} cos \ theta & sin \ theta \\ −sin \ theta & cos \ theta \ end {bmatrix} O $$
P '= P. R
Donde R es la matriz de rotación
$$ R = \ begin {bmatrix} cos \ theta & sin \ theta \\ −sin \ theta & cos \ theta \ end {bmatrix} $$
El ángulo de rotación puede ser positivo y negativo.
Para un ángulo de rotación positivo, podemos usar la matriz de rotación anterior. Sin embargo, para la rotación de ángulo negativo, la matriz cambiará como se muestra a continuación:
$$ R = \ begin {bmatrix} cos (- \ theta) & sin (- \ theta) \\ -sin (- \ theta) & cos (- \ theta) \ end {bmatrix} $$
$$ = \ begin {bmatrix} cos \ theta & −sin \ theta \\ sin \ theta & cos \ theta \ end {bmatrix} \ left (\ because cos (- \ theta) = cos \ theta \; y \; pecado (- \ theta) = −sin \ theta \ right) $$
Escalada
Para cambiar el tamaño de un objeto, se usa la transformación de escala. En el proceso de escalado, expande o comprime las dimensiones del objeto. La escala se puede lograr multiplicando las coordenadas originales del objeto con el factor de escala para obtener el resultado deseado.
Supongamos que las coordenadas originales son (X, Y), los factores de escala son (S X , S Y ) y las coordenadas producidas son (X ', Y'). Esto se puede representar matemáticamente como se muestra a continuación:
X' = X . SX and Y' = Y . SY
El factor de escala S X , S Y escala el objeto en la dirección X e Y respectivamente. Las ecuaciones anteriores también se pueden representar en forma de matriz como se muestra a continuación:
$$ \ binom {X '} {Y'} = \ binom {X} {Y} \ begin {bmatrix} S_ {x} & 0 \\ 0 & S_ {y} \ end {bmatrix} $$
O
P’ = P . S
Donde S es la matriz de escala. El proceso de escalado se muestra en la siguiente figura.
Si proporcionamos valores menores que 1 al factor de escala S, entonces podemos reducir el tamaño del objeto. Si proporcionamos valores mayores que 1, entonces podemos aumentar el tamaño del objeto.
Reflexión
El reflejo es la imagen especular del objeto original. En otras palabras, podemos decir que es una operación de rotación con 180 °. En la transformación de reflexión, el tamaño del objeto no cambia.
Las siguientes figuras muestran reflexiones con respecto a los ejes X e Y, y sobre el origen respectivamente.
Cortar
Una transformación que inclina la forma de un objeto se llama transformación de corte. Hay dos transformaciones de corteX-Shear y Y-Shear. Uno cambia los valores de las coordenadas X y el otro cambia los valores de las coordenadas Y. Sin embargo; en ambos casos, sólo una coordenada cambia sus coordenadas y la otra conserva sus valores. El cizallamiento también se denominaSkewing.
X-Shear
El X-Shear conserva la coordenada Y y se realizan cambios en las coordenadas X, lo que hace que las líneas verticales se incline hacia la derecha o hacia la izquierda como se muestra en la siguiente figura.
La matriz de transformación para X-Shear se puede representar como:
$$ X_ {sh} = \ begin {bmatrix} 1 & shx & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \ end {bmatrix} $$
Y '= Y + Sh y . X
X '= X
Y-Shear
El Y-Shear conserva las coordenadas X y cambia las coordenadas Y, lo que hace que las líneas horizontales se transformen en líneas que se inclinan hacia arriba o hacia abajo como se muestra en la siguiente figura.
El corte en Y se puede representar en una matriz de la siguiente manera:
$$ Y_ {sh} \ begin {bmatrix} 1 & 0 & 0 \\ tímido & 1 & 0 \\ 0 & 0 & 1 \ end {bmatrix} $$
X '= X + Sh x . Y
Y '= Y
Transformación compuesta
Si una transformación del plano T1 va seguida de una transformación de segundo plano T2, entonces el resultado en sí puede estar representado por una sola transformación T que es la composición de T1 y T2 tomadas en ese orden. Esto se escribe como T = T1 ∙ T2.
La transformación compuesta se puede lograr mediante la concatenación de matrices de transformación para obtener una matriz de transformación combinada.
Una matriz combinada -
[T][X] = [X] [T1] [T2] [T3] [T4] …. [Tn]
Donde [Ti] es cualquier combinación de
- Translation
- Scaling
- Shearing
- Rotation
- Reflection
El cambio en el orden de transformación conduciría a resultados diferentes, ya que en general la multiplicación de matrices no es acumulativa, es decir [A]. [B] ≠ [B]. [A] y el orden de multiplicación. El propósito básico de componer transformaciones es ganar eficiencia aplicando una sola transformación compuesta a un punto, en lugar de aplicar una serie de transformaciones, una tras otra.
Por ejemplo, para rotar un objeto sobre un punto arbitrario (X p , Y p ), tenemos que realizar tres pasos:
- Traslade el punto (X p , Y p ) al origen.
- Gírelo sobre el origen.
- Finalmente, traslade el centro de rotación a donde pertenecía.