2013-10-21 258 views
1

我在做光線追蹤,我有屏幕。我想定義它現在世界座標屏幕座標

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的順序是這樣嗎?請有人給我建議。

,然後我申請的旋轉矩陣和平移向量的皈依到世界座標

是投影機的產生之初(Coo​​rdsX和CoordsY)正確的座標?

很多感謝

+1

此問題非常具體,但缺少有人需要幫助您的所有信息。你在比較什麼?你說Z組件是關閉的,但是甚至沒有向我們展示產生Z的代碼。根據什麼定義,CoordsX和CoordsY是否正確? – Peter

+0

我將我從模擬中得到的結果與我的設置軟件使用的結果進行比較。 秒Z的計算是通過一個公式,它是相同的公式,該軟件使用(複製粘貼和我檢查2次,這是相同的) –

+0

我會說,如果ScreenX/YCoordinates匹配密切,那麼你的x,y輸入參數必須是正確的。其中只留下f(x,y)。 – Peter

回答

1

我會說,如果ScreenX/YCoordinates儘可能靠近他們做你的X匹配,那麼,Y輸入參數必須是正確的。只留下f(x,y)實現之間可能的不匹配。即使它們看起來相同,也有可能存在數值差異。精度匹配嗎?其他軟件可以使用整數與浮點數學?