2015-02-05 165 views
0

据我所知,.NET中的picturebox坐标系被定义为顶点是原点,X指向右,Y指向下。在Picturebox中转换坐标

是否有一个内置的.NET函数将默认坐标转换为笛卡儿? (原点位于左下方,X向右,Y向上)

+1

你想垂直翻转图片吗?或者你的问题只是关于坐标变换? –

+0

我只是在问变形。当我指定(0,0)时,意思不是从左上角开始,而是希望它从左下角开始。 –

+0

不,那里没有任何内置的图书馆/课程。为了解决这个问题,您可以阅读图像并从低点到高点开始绘制图片框。 –

回答

2

对不起,没有内置函数可以转换为笛卡尔坐标系。但是,添加一个会很简单。唯一的区别是Y轴值。

public static class PictureBoxExtensions 
{ 
    public static Point ToCartesian(this PictureBox box, Point p) 
    { 
     return new Point(p.X, p.Y - box.Height); 
    } 

    public static Point FromCartesian(this PictureBox box, Point p) 
    { 
     return new Point(p.X, box.Height - p.Y); 
    } 
} 

PS:希望我的数学正确。