> | with(linalg): |
The matrix extracted out of the picture:
> | M:=array(1..4,1..4,[ [ 0.004216, 0.010552, 0.002056, -0.841142 ], [-0.004686, -0.000183, 0.010552, -0.284094 ], [-0.010405, 0.005040, -0.004534, 0.493913 ], [ 0.0 , 1.0 , 0.0 , 1.0 ]]); |
Here the With and Height of the Picture:
> | w,h := (1024,1024); |
The point coordinates of the location you search in the picture:
> | px,py,pz := (0.0, 0.0, 0.0); |
The matrix multiplication:
> | Q := multiply(M,array(1..4,[px, py, pz, 1])); |
> | k := min(w,h); |
> | S:= multiply( array(1..3,1..3,[[k,0 ,w ], [0,-k,h ], [0, 0,1.0]]), array(1..3,[Q[1]/Q[4], Q[2]/Q[4], 1]) ); |
> | x := S[1] * 0.5; |
> | y := S[2] * 0.5; |
> | px,py,pz := (0.0, 0.0, 100.0); |
The matrix multiplication:
> | Q := multiply(M,array(1..4,[px, py, pz, 1])); |
> | k := min(w,h); |
> | S:= multiply( array(1..3,1..3,[[k,0 ,w ], [0,-k,h ], [0, 0,1.0]]), array(1..3,[Q[1]/Q[4], Q[2]/Q[4], 1]) ); |
> | x := S[1] * 0.5; |
> | y := S[2] * 0.5; |
> |