5 votos

Me ' m buscando el nombre de una transformación que hace lo siguiente (imágenes de ejemplo incluidas)

Estoy en la situación habitual que si me gustaría saber cual es el nombre de la cosa fue, entonces yo podría encontrar la respuesta. Ya que no sé el nombre, aquí está lo que estoy buscando:

Supongamos que tengo el siguiente "serpiente", de 10 de cuadriláteros:

snake of quadrilaterals

Ahora quiero aplicar una transformación a cada uno de estos cuadriláteros tal que la "serpiente" es enderezada. Para ello he calculado una perspectiva de transformación de acuerdo a lo que he leído aquí. Este también parece funcionar "de alguna manera" como termino con el siguiente resultado:

enter image description here

Como se puede ver, la línea que estaba en el centro de la "serpiente" no está en el centro de la enderezado objeto más.

Lo que necesita es una transformación lineal de las escalas de todo el contenido de la "warped" cuadriláteros en rectángulos. Si algo estaba en el centro de un borde de la serpiente, entonces también debería estar en el centro de la transformación de borde. Al parecer, una perspectiva de transformación no hacerlo.

Mi pregunta es: que la transformación estoy buscando que cumple esta propiedad?

2voto

josch Puntos 168

La solución es la siguiente: dado un distorsionada, de entrada cuadrilátero $A$,$B$,$C$,$D$, un punto en el es $X$, y la anchura $w$, la altura de la $h$ y la posición $x_R,y_R$ de la producción rectángulo, la solución es:

$$ X' = x_R+sw \\ Y' = y_R+th \\ $$

Donde los parámetros $s$ $t$ calcular de la siguiente manera:

$$ s_{1,2} = \frac{-b_s\pm\sqrt{b_s^2-4a_sc_s}}{2a_s} \\ a_s = (D_x-C_x)(B_y-A_y-C_y+D_y)-(D_y-C_y)(B_x-A_x-C_x+Dx) \\ b_s = (D_y-A_y)(C_x-D_x)+(X_x-D_x)(B_y-A_y-C_y+D_y)-(X_y-D_y)(B_x-A_x-C_x+D_x)-(A_x-D_x)(D_y-C_y) \\ c_s = (A_y-D_y)(X_x-D_x)-(A_x-D_x)(X_y-D_y) \\ t_{1,2} = \frac{-b_t\pm\sqrt{b_t^2-4a_tc_t}}{2a_t} \\ a_t = (D_y-A_y)(B_x-A_x-C_x+D_x)-(D_x-A_x)(B_y-A_y-C_y+D_y) \\ b_t = (D_y-A_y)(C_x-D_x)+(X_y-D_y)(B_x-A_x-C_x+D_x)-(X_x-D_x)(B_y-A_y-C_y+D_y)-(C_y-D_y)(D_x-A_x) \\ c_t = (C_x-D_x)(X_y-D_y)-(C_y-D_y)(X_x-D_x) \\ $$

Para demostrar la corrección de la solución, aquí está el resultado de la transformación. En contraste con la anterior, no sólo con la línea central transformado, sino también otros datos transformados en la misma forma. Como se puede ver, tanto en conectarse correctamente en las fronteras entre la salida de los rectángulos.

successful transformation

Usuario 5xum me ayudó a encontrar una solución para la ecuación anterior en caso de $a$ es cero. En ese caso, $s$ $t$ son lineales y el cálculo $-\frac{c}{b}$.

0voto

laleh8798 Puntos 16

De la etiqueta "álgebra lineal" supongo que usted está buscando una transformación lineal. Entonces es imposible. Ya la inversa, que es otra vez una transformación lineal puede asignar sólo un rectángulo a un paralelogramo y no a una 'serpiente'.

0voto

user136619 Puntos 46

Trate de transformación afín. Conserva colinealidad.

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