> | with(linalg): |
The matrix extracted out of the picture:
> | M:=array(1..4,1..4,[ [0.011547 , 0.0 , 0.0 , -0.577350], [0.0 , 0.0 , 0.011547, -0.577350], [0.0 , 0.019965, 0.0 , -0.999269], [0.0 , 0.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; |
> |