协调翻译问题

时间:2011-10-21 18:59:50

标签: c# coordinates transform

我已经交了一个包含一系列坐标的csv文件,应该在位图网格上绘制线条;我可以获取值并将它们转换为DrawLine函数的整数等,就好了。

问题是这些坐标基本上是百分比; x:0.5和y:0.5代表死点(X的50%和Y的50%)和x:1.0 / y:1.0将位于右上角,无论绘制的内容的绝对尺寸如何(in这个例子是1000x1500位图)。此外,屏幕/窗口坐标从左上角开始,不影响x轴,但y轴需要以某种方式反转。

那么我需要对坐标做些什么才能让它们正确绘制?说实话,我的X轴工作正常,Y轴给我带来了问题。

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

2 个答案:

答案 0 :(得分:0)

天真的方法是简单地计算单个最接近的像素,即round(WIDTH*x)

但这通常很糟糕,因为有些像素会留空,有些像素会被多次映射。

我要做的是计算每个点的覆盖百分比 - 即一个点可以覆盖一个像素的75%,并且它的25%是邻居,然后相应地填充像素的颜色。

答案 1 :(得分:0)

如果没有更多关于错误的细节,我会猜测并说你正在计算你的Y值上下颠倒。试试这种方式:

round(HEIGHT*(1.0-y))

然后,告诉我们您遇到问题的详细信息。

相关问题