Esto le da dos conjuntos, cada uno de tres ecuaciones con 3 variables:
a*x0+b*y0+c*z0 = x0'
a*x1+b*y1+c*z1 = x1'
a*x2+b*y2+c*z2 = x2'
d*x0+e*y0+f*z0 = y0'
d*x1+e*y1+f*z1 = y1'
d*x2+e*y2+f*z2 = y2'
sólo tiene que utilizar cualquier método de resolución de ecuaciones simultáneas es más fácil en su situación (ni siquiera es difícil de resolver estos "por mano"). Entonces su matriz de transformación es justa ((a, b, c) (d, e, f)).
...
En realidad, es sobre-simplificado y asume una cámara apuntando al origen de su sistema de 3D y ninguna perspectiva de coordenadas.
Para ponerlo en perspectiva, la matriz de transformación funciona más como:
(a, b, c, d) (xt)
(x, y, z, 1) (e, f, g, h) = (yt)
(i, j, k, l) (zt)
(xv, yv) = (xc+s*xt/zt, yc+s*yt/zt) if md < zt;
pero la matriz de 4x3 es más limitado de 12 grados de libertad, ya que debemos tener
a*a+b*b+c*c = e*e+f*f+g*g = i*i+j*j+k*k = 1
a*a+e*e+i*i = b*b+f*f+j*j = c*c+g*g+k*k = 1
Así que probablemente debería tener 4 apunta a obtener 8 ecuaciones para cubrir las 6 variables para la posición y el ángulo de la cámara y 1 más para escalar los puntos de vista bidimensionales, ya que podremos eliminar las coordenadas "centrales" (xc, yc).
Así que si tiene 4 puntos y transforma sus puntos de vista 2D para que sean relativos al centro de su pantalla, entonces puede obtener 14 ecuaciones simultáneas en 13 variables y resolverlas.
Desafortunadamente, seis de las ecuaciones no son ecuaciones lineales. Afortunadamente, todas las variables en esas ecuaciones están restringidas a los valores entre -1 y 1 por lo que aún es posible resolver las ecuaciones.
¡Esta no es mi tarea! –