Blade_OrthographicCamera_ViewTop_3000_1000.mws

> with(linalg):
 

The matrix extracted out of the picture: 

> M:=array(1..4,1..4,[ [0.009086 , 0.0     , 0.0     , -0.613320],
                    [0.0      , 0.009086, 0.0     , -0.613320],
                    [0.0      , 0.0     , -0.009086 , 0.045431],
                    [0.0      , 0.0     , 0.0     ,  1.0]]);
 

M := Matrix(%id = 145885772) 

Here the With and Height of the Picture: 

> w,h := (3000,1000);
 

w, h := 3000, 1000 

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

> px,py,pz := (5.0, 125.0, 15.0);
 

px, py, pz := 5.0, 125.0, 15.0 

The matrix multiplication: 

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

Q := Vector[row](%id = 146129916) 

> k := min(w,h);
 

k := 1000 

> 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[row](%id = 146372920) 

> x := S[1] * 0.5;
 

> y := S[2] * 0.5;
 

x := 1216.055000 

y := 238.7850000 

> px,py,pz := (18.0, 118.5, 9.0);
 

px, py, pz := 18.0, 118.5, 9.0 

The matrix multiplication: 

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

Q := Vector[row](%id = 146628276) 

> k := min(w,h);
 

k := 1000 

> 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[row](%id = 146847056) 

> x := S[1] * 0.5;
 

x := 1275.114000 

> y := S[2] * 0.5;
 

y := 268.3145000 

>