2011-10-21 122 views
0

我已經遞過一個csv文件,其中包含一系列座標,應該在這些座標上繪製位於網格頂部的線條;我可以得到這些值並將它們轉換爲DrawLine函數的整數,等等,就好了。座標翻譯問題

問題是這些座標基本上是百分比; x:0.5和y:0.5代表死點(即X的50%和Y的50%),而x:1.0/y:1.0將位於右上角,而不管所繪製的內容的絕對尺寸這個實例是一個1000x1500的位圖)。此外,屏幕/窗口座標從左上角開始,不影響x軸,但y軸需要以某種方式反轉。

那麼我需要做些什麼來使座標正確繪製?說實話,我已經有了X軸工作正常,這是Y軸給我的問題。

(含位圖的窗口是1600x1600,FWIW。)

+4

你有多遠?你碰到什麼問題? –

+0

您要說明您需要做什麼:1.將x和y縮放到所需的「視口」。 2.翻轉Y座標,3.翻譯'vierport'的原點 – mozillanerd

回答

0

那麼用簡單的方式是簡單地計算單最接近像素即round(WIDTH*x)

但那壞一般,因爲一些像素將被留爲空白,有些會被映射多次。

我要做的是計算每個點覆蓋的百分比 - 即一個點可以覆蓋一個像素的75%和相鄰的25%,然後相應地填充像素的顏色。

0

沒有更多細節問題,我會猜測並說您正在計算Y值。試試這個方法:

round(HEIGHT*(1.0-y)) 

然後,給我們更多的細節,你有什麼麻煩。

+0

我根本沒有計算它,它直接從文件中出來。我使用StreamReader將其取出,執行Regex Replace來獲取原始數字,然後使用int.Parse並將其傳遞給DrawLine函數。正如我所說,問題在於電腦根本不理解這種格式,窗口座標從左上角開始,而不是右下角,這是我的問題。 – user1006221

+0

如果你不明白我寫的是如何反轉y值的,我不確定我能幫你。 – BoltBait