2次元のディスプレイ(しかも高々数千×数千の解像度)と言う少ない情報から、
3次元と言う高次の情報を無理矢理得ようとしているんだから誤差は付き物

逆算は誤差が出ることを前提にプログラムしなきゃならないよ