C# winfrom 简单绘图GDI+

  最近比较闲,无聊就瞎看了一些小玩意。winfrom虽说现在用的除了固定的那些,基本都不会用了。不巧的事,我就在这些固定那就中里面。

  说道绘图GDI+我就简单说一下:

    GDI+:Graphics Device Interface Plus也就是图形设备接口,提供了各种丰富的图形图像处理功能;在C#.NET中,使用GDI+处理二维(2D)的图形和图像,使用DirectX处理三维(3D)的图形图像,图形图像处理用到的主要命名空间是System . Drawing:提供了对GDI+基本图形功能的访问,主要有Graphics类、Bitmap类、从Brush类继承的类、Font类、Icon类、Image类、Pen类、Color类等.

  大概了解了什么是GDI+后,我们来看一下绘图要用到的主要工具,要画图,肯定要画板吧,在C#中画板可以通过Graphics这个类来创建,有了画板,总得弄个笔什么之类的吧,不然怎么画呀,在c#中我们可以用Pen,Brush类来实现类似功能.颜料颜色则自然是用Color类解决了.

  有了工具,接下来就好说了,在vs中建一个完成您from窗体,至于命名自己想吧(在这我使用vs2013写的)

 1、准备画板

    创建画板有三种方式(大家可以自己试试,至于我使用的是第一种)

      A: 在窗体或控件的Paint事件中直接引用Graphics对象 
      B: 利用窗体或某个控件的CreateGraphics方法
      C: 从继承自图像的任何对象创建Graphics对象   

1 private void Form1_Paint(object sender, PaintEventArgs e)
2         {
3             Graphics g = e.Graphics;//创建画板(这里是直接写在Form窗体上了)
4         }

  2、准备画笔 

1         private void Form1_Paint(object sender, PaintEventArgs e)
2         {
3             Graphics g = e.Graphics;//创建画板(这里是直接写在Form窗体上了)
4 
5             Pen p1 = new Pen(Color.Red, 8);//定义了一个绿色,宽度为3的画笔
6         } 

  3、开始你的创作(我这里简单的做了一个五环的小旗子)

 1 private void Form1_Paint(object sender, PaintEventArgs e)
 2         {
 3             Graphics g = e.Graphics;//创建画板(这里是直接写在Form窗体上了)
 4 
 5             //五环
 6             Pen p1 = new Pen(Color.Red, 8);//定义了一个绿色,宽度为3的画笔
 7             Pen p2 = new Pen(Color.Blue, 8);
 8             Pen p3 = new Pen(Color.Black, 8);
 9             Pen p4 = new Pen(Color.Yellow, 8);
10             Pen p5 = new Pen(Color.Green, 8);
11             g.DrawArc(p1, 85, 75, 125, 125, 1500, 1500);//用p1画笔画出了一个园
12             g.DrawArc(p2, 210, 75, 125, 125, 1500, 1500);
13             g.DrawArc(p3, 335, 75, 125, 125, 1500, 1500);
14             g.DrawArc(p4, 148, 162, 125, 125, 1500, 1500);
15             g.DrawArc(p5, 272, 162, 125, 125, 1500, 1500);
16 
17             //小旗子
18             Pen p6 = new Pen(Color.Red, 15);
19             g.DrawLine(p6, 20, 20, 20, 1000);
20             g.DrawLine(p6, 600, 63, 600, 376);
21 
22             Pen p7 = new Pen(Color.Red, 15);
23             Point d1 = new Point(16, 24);
24             Point d2 = new Point(200, 60);
25             Point d3 = new Point(350, 5);
26             Point d4 = new Point(600, 70);
27 
28             Point d5 = new Point(20, 320);
29             Point d6 = new Point(200, 360);
30             Point d7 = new Point(350, 305);
31             Point d8 = new Point(600, 370);
32 
33             g.DrawBezier(p7, d1, d2, d3, d4);//花出一条流水似的线
34             g.DrawBezier(p7, d5, d6, d7, d8);
35         }

  4、运行后的实际效果

  

  尴尬,因为画的比较大,本人在画画也没太大天赋,大伙就凑合着看吧

版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

作者:黯淡の青春    博客地址:http://www.cnblogs.com/wuwangqianxun/

本人也是初学者,入门不久,大家相互切磋,就当娱乐
原文地址:https://www.cnblogs.com/wuwangqianxun/p/7249955.html