C# 图形图像技术(通过Graphics绘制图像)

文章目录

创建Graphics对象

csharp 复制代码
private  void Form1_Load(object sender,Eventargs e)
{
	Graphics ghs = this.CreateGraphics();
}

画笔与画刷

画笔

构造函数

csharp 复制代码
public Pen(Color color,float width);
//color:设置Pen的颜色。
//width:设置Pen的宽度。
csharp 复制代码
Pen p=new Pen(Color.Blue,2);//实例化一个Pen类,并设置其颜色为蓝色,宽度为2

画刷

SolidBrush类

构造函数

csharp 复制代码
public SolidBrush(Color color);
//color:设置画刷的颜色。

HatchBrush类

复制代码
HatchBrush类提供一种特定样式的图形,用来实现填满整个封闭区域的绘图效果。

构造函数

csharp 复制代码
public HatchBrush(HatchStyle hatchstyle,Color foreColer);
//hatchstyle:表示此HatchBrush绘制图案。
//foreColer:表示此HatchBrush绘制的线条颜色。

例 绘制阶梯

csharp 复制代码
 private void button1_Click(object sender, EventArgs e)
 {
     Graphics ghs=this.CreateGraphics();
     for (int i = 0; i < 6; i++) { 
         HatchStyle style = (HatchStyle)(5+i);
         HatchBrush hatchBrush = new HatchBrush(style,Color.White);
         Rectangle rectangle = new Rectangle(10,50*i,50*i,50);
         ghs.FillRectangle(hatchBrush, rectangle);
     }
 }

LinerGradientBrush类

复制代码
LinerGradientBrush类提供一种渐变色彩的特效,填满图形的内部区域。

构造函数

csharp 复制代码
public LinerGradientBrush(Point p1,Point p2,Color color1,Color color2)
//p1:表示线性渐变的起始点
//p2:表示线性渐变的结束点
//color1:表示线性渐变的开始色彩
//color2:表示线性渐变的结束色彩

csharp 复制代码
 private void button2_Click(object sender, EventArgs e)
 {
     Point p1= new Point(150,150);
     Point p2= new Point(300,300);
     LinearGradientBrush lgb = new LinearGradientBrush(p1, p2, Color.Blue, Color.Green);
     Graphics ghs = this.CreateGraphics();
     lgb.WrapMode=WrapMode.TileFlipX;
     ghs.FillRectangle(lgb,15,50,300,300);
 }

基本图形绘制

矩形

构造函数

csharp 复制代码
public void DrawRectangle(Pen pen,int x,int y,int width,int height);
//pen:Pen对象,用于指定矩形的颜色、宽度、和样式
//x:矩形左上角的X坐标
//y:矩形左上角的Y坐标
//width:矩形的宽度
//height:矩形的高度

csharp 复制代码
 private void button3_Click(object sender, EventArgs e)
 {
     Graphics graphics = this.CreateGraphics();
     Pen myPen=new Pen(Color.Black,8);
     graphics.DrawRectangle(myPen, 15, 50, 300, 300);
 }

椭圆

构造函数

csharp 复制代码
public void DrawEllipse(Pen pen,int x,int y,int width,int height);
//pen:Pen对象,用于指定曲线的颜色、宽度、和样式
//x:椭圆边框左上角的X坐标
//y:椭圆边框左上角的Y坐标
//width:椭圆边框的宽度
//height:椭圆边框的高度

csharp 复制代码
private void button4_Click(object sender, EventArgs e)
{
    Graphics graphics = this.CreateGraphics();
    Pen myPen = new Pen(Color.Black, 3);
    graphics.DrawEllipse(myPen, 15, 50, 300, 300);
}

圆弧

构造函数

csharp 复制代码
public void DrawArc(Pen pen,Rectangle rect,float startAngle,float sweepAngle);
//pen:Pen对象,用于指定曲线的颜色、宽度、和样式
//rect:Rectangle结构,用于定义弧的边界
//startAngle:从X轴到弧线的起始点,沿顺时针方向度量的角(以度为单位)
//sweepAngle:从startAngle参数到弧线的结束点,startAngle

csharp 复制代码
 private void button5_Click(object sender, EventArgs e)
 {
     Graphics graphics = this.CreateGraphics();
     Pen myPen = new Pen(Color.Black, 3);
     Rectangle rectangle=new Rectangle(15,50,100,60);
     graphics.DrawArc(myPen, rectangle, 150, 200);
 }

扇形

构造函数

csharp 复制代码
public void DrawPie(Pen pen,float x,float y,float width,float height,float startAngle,float); sweepAngle);
//pen:Pen对象,用于指定曲线的颜色、宽度、和样式
//x:边框左上角的X坐标,该边框用于定义扇形所属的椭圆
//y:边框左上角的Y坐标,该边框用于定义扇形所属的椭圆
//width:边框的宽度
//height:边框的高度
//startAngle:从X轴到扇形的起始点,沿顺时针方向度量的角(以度为单位)
//sweepAngle:从startAngle参数到扇形的第二条边,startAngle
相关推荐
彧azz4 小时前
图的存储结构详解:邻接矩阵的原理、实现与应用
开发语言·数据结构·学习·php
嵌入式学习菌5 小时前
Modbus‑RTU 数据类型分析
开发语言·单片机·bug
matlab代码6 小时前
基于matlab数字图像处理的指纹识别系统【源码68期】
开发语言·matlab
matlab代码6 小时前
基于matlab的水果识别系统(苹果香蕉菠萝梨桃子)【源码65期】
开发语言·matlab
wuyk5557 小时前
从零吃透 MQTT 通信|第 8 章 FreeRTOS 多任务架构下 MQTT 工程架构,任务拆分、队列解耦、临界区保护
c语言·开发语言·stm32·学习·架构
weixin199701080167 小时前
[特殊字符]《跨境二手ERP对接Back Market:标准化API + 7~10工作日技术合规审核实录》(附Python源码)
开发语言·python·pandas
尘客-追梦7 小时前
Day 01:插件化之前,先看清 ABI 这堵墙
开发语言·c++·qt
持敬chijing7 小时前
Python-数据类型-列表
开发语言·python·青少年编程
写后端的胖头鱼8 小时前
【高频面试题】Java 基础类型 + 包装类 + String 互相转换
java·开发语言
matlab代码9 小时前
基于matlab自助水果超市水果识别收费系统(GUI界面)【源码67期】
开发语言·matlab