2013-01-15 27 views
0

對不起,但我不明白髮生了什麼事情。DirectX/SlimDX - 點似乎繪製在錯誤的座標 - 可能的視口錯誤

我是DirectX/SlimDX中的新手。我目前正在嘗試創建一個控件來顯示3D點。 我寫了最簡單的代碼,主要是使用第3版SlimDX教程。我把控制我的形式,大小爲200×200,並試圖在其上畫點:

for (float i = -0.5f; i <= 0.5f; i += 0.001f) 
     cloud.Add(new Vertex(i, 0.001f, 0)); 

這是與Ÿ座標接近於0和x COORDS從-0.5到0.5的線。

現在,據我所知,如果我將一個矩形標記爲視口,那麼矩形的原點是AT THE CENTER。現在,我的控件是200x200,所以在創建視口時我提供了一個視口矩形(0,0,200,200)。因此我的這條線應該顯示在矩形的y軸的中心。但是我所得到的是這樣的:

http://www.4shared.com/photo/xGlGwTWK/Untitled.html

我行是在控制的最底部。 x座標似乎是好的,但爲什麼我的線位於底部,它應該位於中心?

沒有世界,視圖,投影矩陣都在遊戲中,但行仍然在錯誤的地方。任何人都可以解釋我發生了什麼?

我上傳我的項目的剝離版本在這裏,只有3個短文件,用最簡單的繪圖可能:http://www.4shared.com/zip/uPKVbQKV/ScanForSO.html

謝謝大家。

回答

0

我似乎找到了答案。這是因爲控制來源於面板和麪板的原始大小(我猜是從面板構造函數中設置的)是200x100。但是,當我創建視口時,我將其設置爲200x200。因此,起源處於控制的底層。 該控件然後調整到200x200和設備/視口莫名其妙自動跟隨。