Box100-Front-1to1-Orto.mws

>    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     ]]);

M := matrix([[.11547e-1, 0., 0., -.577350], [0., 0., .11547e-1, -.577350], [0., .19965e-1, 0., -.999269], [0., 0., 0., 1.0]])

Here the With  and Height  of the Picture:

>    w,h := (1024,1024);

w, h := 1024, 1024

The point coordinates of the location you search in the picture:

>    px,py,pz := (0.0, 0.0, 0.0);

px, py, pz := 0., 0., 0.

The matrix multiplication:

>    Q := multiply(M,array(1..4,[px, py, pz, 1]));

Q := vector([-.577350, -.577350, -.999269, 1.0])

>    k := min(w,h);

k := 1024

>    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]) );

S := vector([432.7936000, 1615.206400, 1.0])

>    x := S[1] * 0.5;

>    y := S[2] * 0.5;

x := 216.3968000

y := 807.6032000

>    px,py,pz := (0.0, 0.0, 100.0);

px, py, pz := 0., 0., 100.0

The matrix multiplication:

>    Q := multiply(M,array(1..4,[px, py, pz, 1]));

Q := vector([-.577350, .5773500, -.999269, 1.0])

>    k := min(w,h);

k := 1024

>    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]) );

S := vector([432.7936000, 432.7936000, 1.0])

>    x := S[1] * 0.5;

x := 216.3968000

>    y := S[2] * 0.5;

y := 216.3968000

>