C#速成(GID+图形编程)

news2024/12/15 8:45:59

常用类

说明
Brush填充图形形状,画刷
GraphicsGDI+绘图画面,无法继承
Pen定义绘制的对象直线等(颜色,粗细)
Font定义文本格式(字体,字号)

常用结构

结构说明
Color颜色
Point在平面中定义点
Rectangle矩形,四个参数

1、画直线

使用Graphics类中的DrawLine方法

第一步创建画板,创建画笔,

Graphics g = this.CreateGraphics();   //创建画板
Pen p = new Pen(Color.Red, 4);  //生产画笔
//(参数1颜色,参数二线的宽度)
g.DrawLine(p, 100, 100, 200, 100);//画直线 
//(参数一画笔,参数二x1的坐标,参数三y1的坐标,参数四x2的坐标,参数五y2的坐标)
p.Dispose();//释放资源
g.Dispose();

2、画矩形(正方形、长方形)

使用Graphics类中的DrawRectangle方法

Graphics g = this.CreateGraphics(); 	//创建画板
Pen p = new Pen(Color.Red,4);	//生产画笔
//(参数1颜色,参数二线的宽度)
g.DrawRectangle(p,100,100,200,100);//画长方形 
//(参数一画笔,参数二x的坐标,参数三y的坐标,参数四宽度,参数五高度)
p.Dispose();//释放资源
g.Dispose();

3、画椭圆(正圆)

使用Graphics类中的DrawEllipse方法

Graphics g = this.CreateGraphics();     //创建画板
Pen p = new Pen(Color.Red, 4);  //生产画笔
//(参数一颜色,参数二线的宽度)
Rectangle r = new Rectangle(50, 50, 50, 50);//定义矩形
//参数一x坐标,参数二y的坐标,参数三宽度,参数四高度
g.DrawEllipse(p, r);//画园
//(参数一画笔,参数二矩形区域)
p.Dispose();//释放资源
g.Dispose();

4、画字符串

使用Graphics类中的DrawEllipse方法

Graphics g = this.CreateGraphics();     //创建画板
Pen p = new Pen(Color.Red, 4);  //生产画笔
//(参数一颜色,参数二线的宽度)
Brush b = p.Brush;//创建画刷

Font f = new Font("宋体", 18);

g.DrawString("123", f, b, 20, 20);
//(参数一字符串,参数二字体样式,参数三画刷样式,参数四x坐标,参数五y坐标)
p.Dispose();//释放资源
g.Dispose();

在这里插入图片描述

4、扩展知识(填充矩形、椭圆)

使用方法和DrawLine的参数一模一样 只是使用Fill。
FillRectangle 填充矩形
FillEllipse 填充椭圆

Graphics g = this.CreateGraphics();   //创建画板
Pen p = new Pen(Color.Red, 4);  //生产画笔

Brush b1 = p.Brush;//创建画刷
 g.FillRectangle(b1,100,100,50,50);//画长方形 

Rectangle r = new Rectangle(50, 50, 50, 50);//定义矩形
g.FillEllipse(b1, r);//画园
b1。Dispose();
p.Dispose();//释放资源
g.Dispose();

在这里插入图片描述

5、画饼图(不重要

使用Graphics类中的FillPie方法

            Graphics g = this.CreateGraphics();

            Pen p1 = new Pen(Color.Red, 4);
            Brush b1 = p1.Brush;
            Pen p2 = new Pen(Color.Green, 4);
            Brush b2 = p2.Brush;
            Pen p3 = new Pen(Color.Yellow, 4);
            Brush b3 = p3.Brush;
            Rectangle r = new Rectangle(80, 50, 200, 200);

            g.FillPie(b1, r, 0, 120);
            g.FillPie(b2, r, 120, 120);
            g.FillPie(b3, r, 240, 120);

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2259841.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

babeltrace与CTF相关学习笔记-4

babeltrace与CTF相关学习笔记-4 写在前面metadata_string 重头开始定位,操作meta的位置bt_ctf_trace_get_metadata_string stream部分内存的问题 写在前面 正在并行做几件事。 在编译过程中,突然想到,还是再详细研究一下之前的例程。 一是详…

多旋翼无人机 :桨叶设计—跷跷板结构

多旋翼无人机 :桨叶设计——跷跷板结构 前言跷跷板结构 前言 2024年11月,大疆发布了最新的农业无人机T70和T100。其中T70不同于以往的机型,在桨夹处采用了翘翘板结构,大疆将其命名为“挥舞桨叶”。 T70 无人机如下 放大其中螺旋…

低通滤波器,高通滤波器,公式

1 低通滤波器 :输出的是电容的电压 1 低通滤波器可以把低频信号上面的高频信号给滤掉 2 100hz正常通过 3 经过低通滤波器后,波形光滑,绿色波形。一致 4 电容充电速度跟不上输入信号的速度(因为加了电阻,限制了电流&…

如何打造个人知识体系?

第一,每个人的基本情况不同。比如我有一个类别跟「设计」相关,这是自己的个人爱好,但不一定适合其他人。再比如我还有一个类别跟「广告文案」相关,因为里面很多表达可以借用到演讲或写作中,这也不适合所有人。 第二&am…

5G中的ATG Band

Air to Ground Networks for NR是R18 NR引入的。ATG很多部分和NTN类似中的内容类似。比较明显不同的是,NTN的RF内容有TS 38.101-5单独去讲,而ATG则会和地面网络共用某些band,这部分在38.101-1中有描述。 所以会存在ATG与地面网络之间的相邻信…

《自动驾驶技术的深度思考:安全与伦理的挑战》

内容概要 在当今这个自动驾驶技术飞速发展的时代,我们生活的节奏恰似一场疾驰的赛车,然而,赛道上并非总是平坦。在这场技术革命中,安全与伦理问题像是潜伏在阴影中的幽灵,轮番考验着我们的道德底线与法律界限。 随着…

hbuilder 安卓app手机调试中基座如何设置

app端使用基座 手机在线预览功能 1.点击运行 2.点击运行到手机或者模拟器 3.制作自定义调试基座 4.先生成证书【可以看我上一篇文档写的有】,点击打包 5.打包出android自定义调试基座【android_debug.apk】,【就跟app打包一样需要等个几分钟】 6.点击运行到手…

【AIGC】如何高效使用ChatGPT挖掘AI最大潜能?26个Prompt提问秘诀帮你提升300%效率的!

还记得第一次使用ChatGPT时,那种既兴奋又困惑的心情吗?我是从一个对AI一知半解的普通用户,逐步成长为现在的“ChatGPT大神”。这一过程并非一蹴而就,而是通过不断的探索和实践,掌握了一系列高效使用的技巧。今天&#…

汽车免拆诊断案例 | 2014款保时捷卡宴车发动机偶尔无法起动

故障现象 一辆2014款保时捷卡宴车,搭载3.0T 发动机,累计行驶里程约为18万km。车主反映,发动机偶尔无法起动。 故障诊断 接车后试车,发动机起动及运转均正常。用故障检测仪检测,发动机控制单元(DME&#x…

aippt:AI 智能生成 PPT 的开源项目

aippt:AI 智能生成 PPT 的开源项目 在现代办公和学习中,PPT(PowerPoint Presentation)是一种非常重要的展示工具。然而,制作一份高质量的PPT往往需要花费大量的时间和精力。为了解决这一问题,aippt项目应运…

【泛微系统】流程发起次数报表

流程发起次数报表 应用场景: 查询所有发起过业务流程的员工的信息,可作为绩效考核、系统使用情况等依据; 如何使用该SQL生成系统在线报表,实时查询最新的发起数据? 1、数据库创建视图,并定义一个视图名称如;view_test1 2、系统后台建模引擎-表单-右键创建一个虚拟表单…

【电子元器件】电感基础知识

本文章是笔者整理的备忘笔记。希望在帮助自己温习避免遗忘的同时,也能帮助其他需要参考的朋友。如有谬误,欢迎大家进行指正。 一、 电感的基本工作原理 1. 电感的基本工作原理如下: (1) 当线圈中有电流通过时&#…

IDEA 修改格式化仅格式化本次改动代码

最近总是发现格式化的时候会格式化文件所有代码,提交Git 后再看提交日志,就很不清晰。修改方式如下 中文: 格式化代码快捷键[中文配置]: 英文: 格式化代码快捷键[英文配置]:

数据结构开始——时间复杂度和空间复杂度知识点笔记总结

好了,经过了漫长的时间学习c语言语法知识,现在我们到了数据结构的学习。 首先,我们得思考一下 什么是数据结构? 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素…

【游戏设计原理】7 - 加德纳的多元智能理论

虽然多元智能理论是对认知方式的分类,但它也可以为游戏设计提供丰富的思路和策略,帮助设计师创建更具吸引力、包容性和多样性的游戏。通过理解不同玩家的认知方式和优势,我们可以更精准地设计游戏的元素和玩法,使其能够吸引广泛的…

【OpenCV】基于分水岭算法的图像分割

介绍 分水岭算法(Watershed Algorithm)是一种基于形态学的图像分割方法,它模仿了地理学中的分水岭概念。在图像处理中,分水岭算法通过模拟水流从山顶流向谷底的过程来分割图像,其中局部极小值点被视为“山谷”&#x…

ubuntu20.04+ROS Noetic 安装PX4+Mavros

文章目录 系统环境安装依赖PX4 安装老版本安装测试环境变量添加版本查看 安装MAVROS(二进制安装非源码安装)测试 OGC 地面站安装测试mavros与sitl通信参考 系统环境 ubuntu 20.04 ROS Noetic 如果系统安装了Anaconda等虚拟环境管理器,要退出…

Vue Web开发(七)

1. echarts介绍 echarts官方文档 首先我们先完成每个页面的路由,之前已经有home页面和user页面,缺少mail页面和其它选项下的page1和page2页面。在view文件夹下新建mail文件夹,新建index.vue,填充user页面的内容即可。在view下新建…

WordPress插件 Download-block-plugin下载按钮图标美化

WordPress插件 Download-block-plugin下载按钮图标美化

KALI容器虚拟化Docker安装

为什么需要DOCKER 环境一致性保障 开发与生产环境统一:在软件开发过程中,开发环境和生产环境的差异常常导致应用程序出现问题。例如,开发人员在自己的机器上开发了一个 Web 应用,使用了特定版本的操作系统、数据库和编程语言运行…