C#Graphics绘图(及Color、Pen、Brush)

更新时间:2023-06-05 06:42:10 阅读: 评论:0

C#Graphics绘图(及Color、Pen、Brush)
⽬录
1 与继承
类是GDI+技术的⼀个基本类。GDI+(GDI+是GDI[Graphics Device Interface]的改进)是框架的重要组成部分,提供对⼆维图形图像和⽂字排版处理的⽀持。实利
命名空间:
继承:→→Graphics
2 Color、Pen、Brush
2.1 Color
Color Struct表⽰⼀种ARGB颜⾊(alpha、红、绿、蓝)。Color结构通过表态属性公开了140个命名颜⾊。
常⽤属性及⽅法
(1)通过属性返回预先创建的Color对象
Color cl = Color.Red;
(2)创建Color实例的参数为 a,r,g,b;
Color cl = Color.FromArgb(100,200,200,200);  //第1个参数为透明度(alpha)参数,其后为红,绿和蓝.
(3)创建Color实例的参数为 r,g,b; //参数为红,绿,蓝三种原⾊,透明度为默认,即完全不透明.
Color cl = Color.FromArgb(200,200,200);
(4)从⼀个现在的Color对象创建⼀个新的Color实例,只修改透明度成份
Color cl = Color.FromArgb(100,Color.PowderBlue);
(5)⽤⼀个形式为AARRGGBB的组合整数创建⼀个Color实例
Color cl = Color.FromArgb(0x64C8C8FF);
(6)调⽤静态FromKnownColor⽅法来创建Color对象
Color cl = Color.FromKnownColor(KnownColor.PowderBlue);  //KnownColor枚举值作为参数.
pau什么意思(7)调⽤静态FromName⽅法
Color cl = Color.FromName("PowderBlue");  //字符串参数必须包含⼀个KnownColor枚举值的名称.
其他属性
(1)IsNamedColor Boolean值,如果颜⾊值在这140个命名颜⾊中时,值为true,否则为fal.
(2)IsKnownColor Boolean值,如果颜⾊值是KnownColors枚举的颜⾊之⼀时,值为true.
(3)IsSystemColor Boolean值,如果颜⾊值是SystemColors类的属性值之⼀时,值为true.
颜⾊对照表
点击链接查看颜⾊对照表:
2.2 Pen
画笔,定义⽤于绘制直线和曲线的对象。
若者
构造函数
(1)Pen pen1 = new ;  //参数为颜⾊Color 宽度默认为1;
Pen pen2 = new ; //参数为颜⾊Color,单精度浮点数Sigle;
(2) Pen pen3 = ;  // 使⽤指定的  初始化  类的新实例。
Pen pen4 = ;  // 使⽤指定的  和  初始化  类的新实例。
属性
获取或设置此  的对齐⽅式。
获取或设置 ,⽤于确定此  的特性。
获取或设置此  的颜⾊。
获取或设置⽤于指定复合钢笔的值数组。 复合钢笔绘制由平⾏直线和空⽩区域组成的复合直线。
获取或设置要在通过此  绘制的直线终点使⽤的⾃定义线帽。
获取或设置要在通过此  绘制的直线起点使⽤的⾃定义线帽。
获取或设置⽤在短划线终点的线帽样式,这些短划线构成通过此  绘制的虚线。
获取或设置直线的起点到短划线图案起始处的距离。
获取或设置⾃定义的短划线和空⽩区域的数组。
获取或设置⽤于通过此  绘制的虚线的样式。
获取或设置要在通过此  绘制的直线终点使⽤的线帽样式。
获取或设置通过此  绘制的两条连续直线的端点的联接样式。
获取或设置斜接⾓上联接宽度的限制。
weatherreport
获取⽤此  绘制的直线的样式。
获取或设置在通过此  绘制的直线起点使⽤的线帽样式。
获取或设置此  的⼏何转换的副本。
2.3 Brush
画刷:定义⽤于填充图形形状(如矩形、椭圆、饼形、多边形和封闭路径)的内部的对象。
参考代码:
结果如下:
⼏种画刷对⽐
3 ⽰例
3.1 画线
画实线和虚线的代码如下:
1
private void Form1_Paint(object nder, PaintEventArgs e)2
{3
     // (实⼼刷)4
Rectangle  myrect1 = new Rectangle(20, 80, 250, 100);5
SolidBrush  mysbrush1 = new SolidBrush(Color.DarkOrchid);                  6
SolidBrush  mysbrush2 = new SolidBrush(Color.Aquamarine);      7
SolidBrush  mysbrush3 = new SolidBrush(Color.DarkOrange);8
9
     //(梯度刷)10
LinearGradientBrush  mylbrush5 = new LinearGradientBrush(rect1,11
Color.DarkOrange, Color.Aquamarine,12
LinearGradientMode.BackwardDiagonal);13
14
//(阴影刷)15
HatchBrush  myhbrush5 = new HatchBrush(HatchStyle.DiagonalCross,16
Color.DarkOrange, Color.Aquamarine);17
HatchBrush  myhbrush2 = new HatchBrush(HatchStyle.DarkVertical,18
reward是什么意思
Color.DarkOrange, Color.Aquamarine);19
HatchBrush  myhbrush3 = new HatchBrush(HatchStyle.LargeConfetti,20
Color.DarkOrange, Color.Aquamarine);21
22
//(纹理刷)23
TextureBrush textureBrush = new TextureBrush(new Bitmap(@"e:/123.jpg"));24
e.Graphics.FillRectangle(mysbrush1, rect1);        // (实⼼刷)25
     e.Graphics.FillRectangle(mylbrush1, rect1);            //(梯度刷)26
27
      e.Graphics.FillRectangle(myhbrush1, rect1);            //(阴影刷)      28
e.Graphics.FillRectangle(mytextureBrush, rect1);      //(纹理刷)29}
效果如下:
画线
3.2 画矩形
填充矩形:g.FillRectangle(brush, rect);
不填充矩形:g.DrawRectangle(pen, rect);大侦探皮卡丘百度云
代码如下:
1
private void button1_Click(object nder, EventArgs e)2
{3
//画实线4
Pen pen = new Pen(Color.Red, 3); 5
//确定线的⾸位位置6
Point point1 = new Point(10, 50);7
Point point2 = new Point(250, 50);8
Graphics g = this.CreateGraphics();9
g.DrawLine(pen, point1, point2);10
}11
12
private void button2_Click(object nder, EventArgs e)13
{14
//画虚线15
Pen pen = new Pen(Color.Red, 3);16
//⾃定义虚线样式17
pen.DashStyle = DashStyle.Custom;18
pen.DashPattern = new float[] { 2, 2 };19
20
//确定线的⾸位位置21
中山大学新华学院
Point point1 = new Point(10, 80);22
Point point2 = new Point(250, 80);23
生命无法承受之轻Graphics g = this.CreateGraphics();24    g.DrawLine(pen, point1, point2);25}
1
private void button1_Click(object nder, EventArgs e)2
{3
//画矩形4
Pen pen = new Pen(Color.YellowGreen);5
SolidBrush brush = new SolidBrush(Color.YellowGreen);6
7
Graphics g = this.CreateGraphics();8
you shall not pass//定义⼀个矩形9
Rectangle rect = new Rectangle(20, 20, 220, 200);10
g.FillRectangle(brush, rect);11    //g.DrawRectangle(pen, rect);12}
画矩形
3.3 画圆
①填充圆:g.FillEllip(brush, rect);
②不填充圆:g.DrawEllip(pen, rect);
代码如下:
效果如下:
画圆
3.4 画弧/扇形
①画弧:g.DrawArc(pen, rect, -90,90);  //四个参数分别为:Pen,矩形区域rect,起始⾓度(0为⽔平向右,顺时针为正),扫过⾓度。
②画填充扇形:g.FillPie(brush, rect, -45, 90);  //四个参数分别为:Brush,矩形区域rect,起始⾓度(0为⽔平向右,顺时针为正),扫过⾓度。
south china③画不填充扇形g.DrawPie(pen,rect,-45,90);  //四个参数分别为:Pen,矩形区域rect,起始⾓度(0为⽔平向右,顺时针为正),扫过⾓度。
代码如下:1
private void button1_Click(object nder, EventArgs e)2
{3
//画圆4
Pen pen = new Pen(Color.Red);5
SolidBrush brush = new SolidBrush(Color.YellowGreen);6
7
Graphics g = this.CreateGraphics();8
Rectangle rect = new Rectangle(20, 20, 200, 200);9
g.FillEllip(brush, rect);10    g.DrawEllip(pen, rect);11}

本文发布于:2023-06-05 06:42:10,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/134490.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:直线   创建   绘制   参数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图