3 votos

Hallar la matriz de transformación afín 2D dado un par de puntos

Tengo las coordenadas de dos puntos en un sistema de coordenadas 2d inicial y las coordenadas correspondientes en un sistema objetivo. ¿Es posible determinar la matriz de transformación afín a partir de estos valores?

Como hay 6 incógnitas, supongo que 2 puntos no son suficientes.

$ \begin{bmatrix}x' & y' & 1\end{bmatrix} = \begin{bmatrix}x & y & 1\end{bmatrix} \begin{bmatrix}a & b & 0 \\ c & d & 0 \\ t_x & t_y & 1\end{bmatrix} $

Pero intuitivamente no entiendo por qué 2 puntos no serían suficientes.

Piensa en el gesto de "pellizcar para ampliar" con dos dedos que puedes utilizar en las pantallas táctiles. ¿No es exactamente este el caso? Tienes las coordenadas de los dedos cuando tocaron la pantalla por primera vez y tienes sus coordenadas actuales. Y, aparentemente, es posible transformar el contenido de forma que las posiciones originales de los dedos se correspondan con las posiciones actuales y, en consecuencia, escalar, trasladar y rotar el resto.

3voto

bubba Puntos 16773

Dos puntos no es suficiente información. Hay un fallo en tu argumento sobre el gesto de pellizcar. Podrías escalar cualquier valor que quisieras en la dirección perpendicular al pellizco, y la transformación seguiría funcionando. Por lo tanto, la transformación no está totalmente determinada por los dos pares de puntos.

La transformación utilizada en el gesto del pellizco es una traslación+rotación+escalado, donde el escalado es uniforme. Por tanto, sólo hay cuatro incógnitas: las traslaciones x e y, el ángulo de rotación y la escala. Puedes determinar estas cuatro cantidades a partir de los dos pares de puntos que obtienes del gesto.

Dicho de otro modo, la transformación "pellizco" no implica ninguna escala secundaria (en la que una dirección se escala de forma diferente a la otra), y no implica ninguna inclinación de los ejes. Por tanto, en comparación con una transformación afín 2D general, faltan dos parámetros y sólo quedan cuatro.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X