2011-10-21 206 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