GDI:Graphics Device Interface.

System. Windows. Shapes 命名空间:

Ellipse

绘制一个椭圆。

Line

在两个点之间绘制一条直线。

Path

绘制一系列相互连接的直线和曲线。 直线和曲线维度通过Data属性声明,并且可以使用 Path 特定的 mini-language 或使用对象模型来指定。

Polygon

绘制一个多边形,它是形成闭合形状的一系列相互连接的直接。

Polyline

绘制一系列相互连接的直线。

Rectangle

绘制一个矩形形状,该形状可以具有笔画和填充。

Shape

为 Ellipse、Polygon 和 Rectangle之类的形状元素提供基类。

来自 <https://msdn.microsoft.com/zh-cn/library/system.windows.shapes(v=vs.95).aspx>

实例代码:

Graphics g = this.CreateGraphics(); 

Pen pen = new Pen(Color.Red, ); //笔画
Brush brush = new SolidBrush(Color.Blue); //用来填充
Font font = new Font("宋体", );//文字 //绘制一个矩形形状,该形状可以具有笔画和填充。
Rectangle rect = new Rectangle(, , , ); g.DrawLine(pen, , , , ); //两个点的坐标(上、左;上、左)
g.DrawRectangle(pen, rect);
g.DrawString("GDI+", font, brush, , );//文字起始位置
brush.Dispose(); font.Dispose(); pen.Dispose();
g.Dispose(); //释放资源

.net中GDI的封装:

Color的静态方法:

FromArgb: 通过三原色构建Color对象;

FromKnownColor:通过已知颜色构建Color对象;

FromName:通过颜色名称来构建Color对象。

Color temp1 = Color.Blue;

Color temp2 = Color.FromArgb(,,);

Color temp3 = Color.FromName("blue");

Size和SizeF:

表示绘制平面上的一个尺寸,一个为整数,一个为浮点数;

Size sz1 = new Size(,);

属性:Width: 表示宽度值,Height: 表示高度值;

重载了加减、比较、赋值操作:

 Size sz1 = new Size(,);

 Size sz2 = sz1;            

 Size sz3 = sz1 + sz2;

Point和PointF:

表示绘制平面上点的坐标,一个为整数,另外一个为浮点数;

Point pt1 = new Point(,);

重载了加减、比较、赋值操作;

Rectangle和RectangleF:

绘制平面上的一个矩形区域

GDI绘制函数图:

void MainFormPaint(object sender, PaintEventArgs e)
{
//垂直坐标
Graphics g = e.Graphics;
PointF [] cur1 = new PointF[ ]; //生成所需要的点 //函数
for( int i=; i<cur1.Length; i++ )
{
double x = (double)i/;
double y = Math.Sin(x) * + Math.Cos( *x );
cur1[i] = new PointF( (float)i, (float)( y*+ ));
}
//将点练成线
g.DrawLines( Pens.Blue, cur1 ); //极坐标
PointF [] cur2 = new PointF[ ];//生成所需要的点 //函数
for( int i=; i<cur2.Length; i++ )
{
double theta = Math.PI/ * i;
double r = Math.Cos( theta * );
cur2[i] = new PointF(
(float)( r * Math.Cos( theta ) * + ),
(float)( r * Math.Sin( theta ) * + ) );
}
g.DrawLines( Pens.Blue, cur2 );
}

效果:

.NET中的GDI+的更多相关文章

  1. 在MFC中使用GDI+的一般方法,以VC6.0编译器为例

    1.载解压GDI+开发包: 2.正确设置include & lib 目录: 设置如下:VC6.0编译器菜单Tools->Options->Directories中添加inlude ...

  2. VS2013中使用GDI+绘图

    VC范例,400多个例子源代码下载 http://download.csdn.net/detail/bigtree_mfc/7727977 VS2013中使用GDI+绘图和VC6.0不同,在VC6.0 ...

  3. Delphi中使用GDI+进行绘图(1)

    Delphi的VCL类库中,默认使用的是GDI绘图接口,该接口封装了Win32 GDI接口,能够满足基本的绘图功能,但如果要实现更高级的绘图功能,往往比较困难,GDI+是微软在GDI之后的一个图形接口 ...

  4. vs2008中使用gdi+的设置

    vs2008中使用gdi+ 1.新建一个mfc工程 2.在stdafx.h文件中加入以下几行语句: #include <gdiplus.h>                //#pragm ...

  5. [转]C#中基于GDI+(Graphics)图像处理系列之前言

    直接给出原文链接吧: C#中基于GDI+(Graphics)图像处理系列之前言 链接:https://pan.baidu.com/s/1zm5TCOHqkqEfiLZuqO0UMA 提取码:qz0h

  6. VC中使用GDI+实现为按钮加载Png图片

    http://blog.csdn.net/flyfish1986/article/details/5381605 VC中使用GDI+实现为按钮加载Png图片 http://www.codeprojec ...

  7. C#中的GDI+图形绘制方法

    GDI+图形绘制方法 1.首先对于绘制图形,必须的先将命名空间导入:using System.Drawing.Drawing2D; 2.然后在一个事件中写入程序 首先先将Graphics这个对象实例化 ...

  8. 在VS2012中使用GDI+

    首先说明,在VS的较高版本中,已经包含GDI+的SDK,不用再次下载,只需要使用前应用相应的头文件,添加些代码即可.但是VC6.0中,没有GDI+SDK,需要同志们下载才行. 步骤: 1.在stdaf ...

  9. VB中的GDI编程-2 画笔

    p{ font-size: 15px; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid #aaa; width: 99%; ...

随机推荐

  1. xsd.exe的使用

    xsd.exe的使用 XML文件生成XSD文件 xsd myFile.xml   /outputdir:myOutputDir XSD文件生存实体类 xsd <你的XSD路径>.xsd / ...

  2. css font-weight原理

    为什么要记录一下?因为今天我要设置一个字符加粗,然后就用font-weight:200,没有任何效果.现在看来很可笑,400才相当于normal,200怎么加粗,奇怪的是也没有变细.所以得研究一下fo ...

  3. 《100种过度医疗大公开》:转译自日文版,日文版依据的是美国的“Choosing Wisely”项目。三星推荐

    本书转译自日文,日文版则是在美国的“Choosing Wisely”项目中选择了100个相对常见的过度医疗项目做解说.Choosing Wisely项目,是由美国多个专业医学组织发起的列出过度医疗项目 ...

  4. 又是一周-AJAX(三)

    hi 我又食言了,但我还是厚颜无耻的回来了... 1.AJAX(三) 三.AJAX的简单的例子 3.1 简介 完成:查询员工信息,通过输入员工编号查询员工的基本信息+新建员工的信息,包含员工姓名,编号 ...

  5. 使用while循环语句和变量输出九九乘法表

    输出的结果如下:

  6. Git/Github + TortoiseGit 使用教程

    前言 Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. 在github上有很多优秀的项目,一个伟大的学习宝库.本文分享使用tortoisegit对github/ ...

  7. VS 的编译选项 build下的 platform target -- Any CPU和x86有什么影响?

    VS 的编译选项 build下的platform -- Any CPU和x86有什么影响? 现在的问题是,我的一个assembly用Any CPU编译就不能在64位系统下运行了,但是用x86编译就ok ...

  8. PHPstudy和ecshop的安装和使用

    PHPstudy和ecshop: phpStudy是一个PHP调试环境的程序集成包. 该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装, ...

  9. java 27 - 3 反射之 通过反射获取构造方法并使用

    类 Constructor<T>:提供关于类的单个构造方法的信息以及对它的访问权限. 通过反射的方法获取构造方法并使用  ps:先忽略泛型 A.1:获取构造方法的数组: public Co ...

  10. Java中正则Matcher类的matches()、lookAt()和find()的区别

    在Matcher类中有matches.lookingAt和find都是匹配目标的方法,但容易混淆,整理它们的区别如下: matches:整个匹配,只有整个字符序列完全匹配成功,才返回True,否则返回 ...