屏幕坐标

时间:2013-10-21 19:43:00

标签: matlab graphics computer-vision raytracing

我正在进行光线跟踪,我有屏幕。我想在世界坐标

中定义它
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)吗?

非常感谢提前

1 个答案:

答案 0 :(得分:1)

我会说如果ScreenX / YCoordinates与它们匹配得很近,那么你的x,y输入参数必须是正确的。这只留下f(x,y)实现之间可能不匹配的情况。即使它们看起来相同,也有可能存在数值差异。精度是否匹配?其他软件可以使用整数与浮点数学吗?