我正在进行光线跟踪,我有屏幕。我想在世界坐标
中定义它MaxPCx = 1;
MaxPCy = 1 / AspectRatio;
x = linspace(0,MaxPCy,Height_proj);
y = linspace(0,MaxPCx,Width_proj);
[CoordsY,CoordsX] = ndgrid(x,y);
% Convert Projector Coordinates To Screen Coordinates
ScreenXCoordinates = (CoordsX .* MaxPCxInv).* SizeX_scr + Screen_OffsetX;
ScreenYCoordinates = (1 - CoordsY .* MaxPCyInv ).* SizeY_scr + Screen_OffsetY;
ScreenZCoordinates = f(x,y) % this function is the same used in my software that I used exactly the same
所以我现在的问题是我从软件中获得了ScreenXCoordinates,ScreenYCoordinates和ScreenZCoordinates,我将它们与我的进行比较,因此x和y坐标的差异按10 ^ -9的顺序排列,但z方向的差异是非常高的10 ^ -4所以请有人给我建议。
然后我将旋转矩阵和平移向量应用于转换到世界坐标
是在开始时生成投影仪坐标(CoordsX和CoordsY)吗?
非常感谢提前
答案 0 :(得分:1)
我会说如果ScreenX / YCoordinates与它们匹配得很近,那么你的x,y输入参数必须是正确的。这只留下f(x,y)
实现之间可能不匹配的情况。即使它们看起来相同,也有可能存在数值差异。精度是否匹配?其他软件可以使用整数与浮点数学吗?