像素坐标与逻辑坐标的转换

像素坐标与逻辑坐标的转换需要两个要素,视窗坐上角的位置与视窗的大小

像素坐标(1024*768) X:0——1024 Y:0——768

逻辑坐标(0——1)

public Point PixelToLogical(Point pixel)
{
//ViewportOrigin显示图片的左上角
Point offset = ViewportOrigin;
       
double scale = ViewportWidth /ActualWidth;


Point logical
= new Point((pixel.X * scale) + offset.X, (pixel.Y * scale) + offset.Y);
return logical;
}

在此基础上面,还可以进行逻辑坐标与自定义坐标的转换,其核心思想是一致的,就是要知道坐上角的坐标与右下角的坐标,这样就可以坐标直接的比例进行换算了,这是我想到的比较简单的解决办法,但是处理投影坐标的时候会有变形,不知道有没有其他简单的解决办法,知道的留言啊

posted @ 2011-04-21 17:42  junyuz  阅读(2368)  评论(0编辑  收藏  举报