C# 协调翻译问题

C# 协调翻译问题,c#,coordinates,transform,C#,Coordinates,Transform,我收到了一个包含一系列坐标的csv文件,从中可以在位图网格的顶部绘制线条;我可以得到这些值,并将它们转换为绘图线函数的整数,等等,很好 问题是这些坐标基本上是百分比;x:0.5和y:0.5表示死点为x的50%和y的50%,x:1.0/y:1.0将位于右上角,而不管绘制到1000x1500位图上的对象的绝对尺寸如何。此外,屏幕/窗口坐标从左上角开始,这不会影响x轴,但y轴需要以某种方式反转 那么我需要对坐标做些什么才能让它们正确绘制呢?老实说,我的X轴工作得很好,是Y轴给了我问题 包含位图的窗口是

我收到了一个包含一系列坐标的csv文件,从中可以在位图网格的顶部绘制线条;我可以得到这些值,并将它们转换为绘图线函数的整数,等等,很好

问题是这些坐标基本上是百分比;x:0.5和y:0.5表示死点为x的50%和y的50%,x:1.0/y:1.0将位于右上角,而不管绘制到1000x1500位图上的对象的绝对尺寸如何。此外,屏幕/窗口坐标从左上角开始,这不会影响x轴,但y轴需要以某种方式反转

那么我需要对坐标做些什么才能让它们正确绘制呢?老实说,我的X轴工作得很好,是Y轴给了我问题


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

简单的方法是简单地计算单个最近的像素,即roundWIDTH*x

但这通常是不好的,因为有些像素会留白,有些像素会被映射多次


我要做的是计算每个点的覆盖率-也就是说,一个点可以覆盖一个像素的75%,以及它的邻居的25%,然后相应地填充一个像素的颜色

如果没有更多的错误细节,我猜一下,你是在计算你的Y值。试着这样做:

round(HEIGHT*(1.0-y))

然后,向我们详细说明您遇到的问题。

您有多远,遇到了哪些问题?您正在说明您需要做什么:1。将x和y缩放到所需的“视口”。2.反转Y坐标,3。翻译你的“vierport”的来源我根本没有计算它,它直接来自一个文件。我使用StreamReader将其取出,执行正则表达式替换以获取原始数字,然后使用int.Parse并将其传递给DrawLine函数。问题是,正如我所说的,计算机根本不理解这种格式,windows坐标从左上角开始,而不是右下角,这就是我的问题。如果你不理解我写的东西是如何反转y值的,我不确定我能帮你什么忙。