在GDI+中如何实现以左下角为原点的笛卡尔坐标系

  今天写了一个求点集合的凸包的一个算法,虽然结果求解出来了,但是想将过程用GDI+绘制出来,就需要将点绘制出来,然而c#GDI+中绘图的坐标与我们常用数学中笛卡尔坐标系是不一样的,所以就要转换GDI+中的坐标,通过以下的代码的就能够实现坐标系的转换,代码如下所示:

  

            //将GDI+中原始的坐标原点平移
g.TranslateTransform(0f, this.Height);

//变换x,y轴的正方向
g.ScaleTransform(1f, -1f);

注:c#gdi+的坐标以区域的左上角为原点,往下为Y正方向,往右为X正方向。

ok,这样就搞定了。

时间: 2024-11-05 17:17:37

在GDI+中如何实现以左下角为原点的笛卡尔坐标系的相关文章

GDI+中发生一般性错误的解决办法(转载)

今天在开发.net引用程序中,需要System.Drawing.Image.Save 创建图片,debug的时候程序一切正常,可是发布到IIS后缺提示出现"GDI+中发生一般性错误"的异常.于是开始"摆渡",并寻找到了解决办法:赋予 NETWORK SERVICE 帐户以写权限. 以下为晚上寻找到的资料: 在开发.NET应用中,使用 System.Drawing.Image.Save 方法而导致"GDI+ 中发生一般性错误"的发生,通常有以下三种

[转]GDI+ 中发生一般性错误

在开发.NET应用中,使用 System.Drawing.Image.Save 方法而导致“GDI+ 中发生一般性错误”的发生,通常有以下三种原因:1. 相应的帐户没有写权限.解决方法:赋予 NETWORK SERVICE 帐户以写权限.2. 指定的物理路径不存在.解决方法:在调用 Save 方法之前,先判断目录是否存在,若不存在,则创建.if (!Directory.Exists(dirpath))Directory.CreateDirectory(dirpath);3. 保存的文件已存在并因

GDI+中双缓冲的基本写法

CDC dcMemory; dcMemory.CreateCompatibleDC(&dc); CBitmap bmp; bmp.CreateCompatibleBitmap(&dc,1024,768); dcMemory.SelectObject(&bmp); Graphics _Graphics(dcMemory.m_hDC); _Graphics.DrawImage(_pImage,0,0,1024,768); //这是在GDI+中的写法. dc.BitBlt(0,0,102

GDI+ 中发生一般性错误。

“/wechat”应用程序中的服务器错误. GDI+ 中发生一般性错误. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.Runtime.InteropServices.ExternalException: GDI+ 中发生一般性错误. 源错误: 行 37: } 行 38: string savePath = string.Format("{0}/storebook.png"

GDI+中发生一般性错误之文件被占用

有多种原因可能导致这个异常出现,比如创建文件的权限不足.文件被占用等. 这里提供一个使用Stream读取图片避免文件被占用的方法. public Image GetImageFromStream(string fileName) { Image img = null; try { FileStream fs = File.OpenRead(fileName); img = Image.FromStream(fs); fs.Close(); } catch (IOException ie) { M

Image.Save()发生“GDI+ 中发生一般性错误”

从数据库中读取的图片是byte[]类型,将其转换成Image可以正常显示,但是调用image.Save()时会发生“GDI+ 中发生一般性错误”.public static System.Drawing.Image ToImage(byte[]bytes){    System.IO.Stream ms = new System.IO.MemoryStream(bytes);    System.Drawing.Image image =System.Drawing.Image.FromStre

[转载]GDI+中发生一般性错误

注:第一次写博客,把自己遇到的问题和收集的资料记录在博客上.在开发.NET应用中,使用 System.Drawing.Image.Save 方法而导致"GDI+ 中发生一般性错误"的发生,通常有以下三种原因:1. 相应的帐户没有写权限.解决方法:赋予 NETWORK SERVICE 帐户以写权限.2. 指定的物理路径不存在.解决方法:在调用 Save 方法之前,先判断目录是否存在,若不存在,则创建.if (!Directory.Exists(dirpath))Directory.Cre

“GDI+ 中发生一般性错误” 解决方法

System.Runtime.InteropServices.ExternalException: GDI+ 中发生一般性错误 相应的帐户没有写权限,赋予帐户写入权限

一、GDI+中发生一般性错误——C#踩坑记

处理图片的时候发生 GDI+中发生一般性错误 我知道的原因有4个 1. 相应的帐户没有写权限. 解决方法:增加权限,赋予 NETWORK SERVICE 帐户以写权限. 2. 指定的物理路径不存在.解决方法:在调用 Save 方法之前,先判断目录是否存在,若不存在,则创建. 网络中应该使用虚拟路径,记得加“~/” if (!Directory.Exists(dirpath))Directory.CreateDirectory(dirpath); 3. 保存的文件已存在并因某种原因被锁定.解决方法