C# 绘图基础

news2024/9/23 19:20:59

一 GDI+技术简介

① GDI:Graphics Device Interface.
② GDI+:GDI的改进;
③ 是.NET框架结构的重要组成部分;
④ 和GDI一样它提供对二维图形图像的支持;

二 .NET 对GDI的封装

在这里插入图片描述

三 坐标系统

GDI+的坐标系统;
在这里插入图片描述

四 System.Drawing中常用的结构

1 Color

① Color封装了对颜色的定义。该结构中封装了数百个分布对应与标准调色板色彩的静态成员。如Color.Red代表红色,Color.Purple代表紫色。

2 有用的静态方法:

①FromArgb:通过三原色构建Color对象;
② FromKnownColor:通过已知颜色构建Color对象;
③ FromName:通过颜色名称来构建Color对象;

3 例如

① Color temp1=Color.Black;
② Color temp2=Color.FromArgb(0,0,0);
③ Color temp3=Color.FromName(“Black”);

五 Size和SizeF

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

2 构造函数

Size sz1=new Size(10,10);

3 属性:

Width:表示宽度值;
Height:表示高度值;

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

Size sz2=sz1;
Size sz3=sz1-sz2;
Size sz4=sz1+sz2;

六 Point和PointF

① 表示绘制平面上点的坐标,一个为整数,另外一个为浮点数;
② 构造方法
Point pt=new Point(20,20);
Point pt=new Point(new Size(10,10))
③ 重载了加、减、比较、赋值操作;

七 Rectangle和RectangleF

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

2 属性

① Bootom 矩形底部的纵坐标;
② Top 矩形顶部的纵坐标;
③ Left 矩形坐部的横坐标;
④ Right 矩形右部的横坐标;
⑤ Height 矩形的高度;
⑥ Width 矩形的宽度;
⑦ Size 矩形的尺寸;
⑧ IsEmpty 矩形是否为空(高度和宽度是否都是0)
⑨X 矩形左上角横坐标;
⑩Y 矩形左上角的纵坐标

 Graphics g = this.CreateGraphics();

            Pen pen = new Pen(Color.Red, 2);

            Brush brush = new SolidBrush(Color.Blue);

            Font font = new Font("宋体", 25);

            Rectangle rect = new Rectangle(20, 120, 100, 160);

            g.DrawLine(pen, 20, 100, 100, 100);

            g.DrawRectangle(pen, rect);

            g.DrawString("GDI+图形编程", font, brush, 20, 20);

            brush.Dispose(); font.Dispose(); pen.Dispose();

            g.Dispose();

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

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

相关文章

计算机毕业设计——简单的网页设计

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录一、网页介绍一…

基于粒子群优化算法的分布式电源优化调度实现配电网稳定运行(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

WAYON维安提供新产品:新起点,新征程,DCDC炼成之路

WAYON维安提供新产品:新起点,新征程,DCDC炼成之路 新起点,新征程,DCDC炼成之路 随着新能源汽车、5G通信、工业4.0以及人工智能的快速发展,电源管理芯片的应用场景越来越丰富。同时传统行业,如网…

Day834.Dubbo如何用管程实现异步转同步 -Java 并发编程实战

Dubbo如何用管程实现异步转同步 Hi,我是阿昌,今天学习记录的是关于Dubbo如何用管程实现异步转同步的内容。 在很多并发场景下,支持多个条件变量能够让并发程序可读性更好,实现起来也更容易。例如,实现一个阻塞队列&a…

星火计划学习笔记——第八讲Apollo控制模块解析与实践2

文章目录1. Apollo控制框架介绍1.1 控制模块的功能和性能要求1.2 控制模块的总体框架1.3 控制模块的代码结构1.3.1 control -> common 中的主要程序1.3.2 control -> conf 中的主要程序1.3.3 control -> controller 中的主要程序1.3.4 control -> proto 中的主要程…

Android 各镜像文件img详解

Android编译后生成文件,在out/target/product/lime下: cache.img、cust.img、metadata.img、misc.img(本地无)、recovery.img、super.img、userdata.img、vbmeta.img、vbmeta_system.img(仅测试适配工作,而…

Python处理Excel比Vba快100倍,媳妇连连夸赞今晚不用再跪搓衣板----python实战

最近经历了一次把vb脚本改造成python脚本,并获得性能提升数倍的过程,当然,这个过程也不是一帆风顺,中间也经历了一些波折,但是,也收获了一波新的认知。正好最近有时间,姑且写下来记录一下。 什…

水一篇,VB+python实现智能聊天机器人案例

1.分工 理论上单python也能写,但是做gui开发,python要用到thinter库/qt库,稍微麻烦一点。这个案例是python做json截取,VB做gui开发截取json字符。 2.准备工作 编写生成file_controlv2.dll并注册,编写speaker.vbs,准备…

java实现获取当前日期、农历、周

大家好,我是雄雄。 前言 大家先看下面的一段话: 今天是:2022年12月18日,星期日,农历十一月廿五,早安🌞🌞🌞 1.讣告 | 我国著名眼科专家兰绪达在南昌逝世,享…

Linux 多线程(附带线程池代码加注释)

目录 01. Linux线程概念 01.1 什么是线程 01.1.1 轻量级进程ID与进程ID之间的区别 01.1.2 总结(重点) 01.2 线程的优点 01.3 线程的缺点 01.4 线程异常 01.5 线程用途 02. Linux进程VS线程 02.1 进程和线程 02.2 关于多线程和多进程编程 03…

Pytorch中的卷积与反卷积(conv2d和convTranspose2d)

卷积 卷积是特征提取的常用操作,卷积可以改变图片的通道和大小,相比全连接操作,卷积可以减少计算量,并且充分融合图像的局部特征。 import torch import torch.nn as nnx torch.randn(1,1,4,4) model nn.Conv2d(in_channels1,o…

Spring MVC学习 | 注解配置Spring MVC总结

文章目录一、注解配置Spring MVC1.1 初始化类1.2 Spring MVC配置类1.3 完整配置过程二、总结2.1 常用组件2.2 执行流程学习视频🎥:https://www.bilibili.com/video/BV1Ry4y1574R 一、注解配置Spring MVC 1.1 初始化类 🔑注解配置的原理 在…

非零基础自学Golang 第10章 错误处理 10.1 错误处理的方式 10.2 自定义错误

非零基础自学Golang 文章目录非零基础自学Golang第10章 错误处理10.1 错误处理的方式10.2 自定义错误10.2.1 错误类型10.2.2 创建错误10.2.3 自定义错误格式第10章 错误处理 我们在编写程序时,为了加强程序的健壮性,往往会考虑到对程序中可能出现的错误…

大数据必学Java基础(一百一十三):监听器概念引入

文章目录 监听器概念引入 一、什么是监听器? 二、监听器怎么分类?

SQL - MySQL深分页

一、MySQL深分页问题 我们在日常开发中,查询数据量比较大的时候,后端基本都会通过前端,移动端传过来的页码,每页数据行数,通过SQL中的 limit 进行分页,如果查询页数比较小的时候,不会出现太大问…

【有营养的算法笔记】 二分+排序/堆 求解矩阵中战斗力最弱的 K 行

👑作者主页:进击的安度因 🏠学习社区:进击的安度因(个人社区) 📖专栏链接:有营养的算法笔记 ✉️分类专栏:题解 文章目录一、题目描述二、思路及代码实现1. 二分 排序2.…

【学习笔记】JDK源码学习之Vector(附带面试题)

【学习笔记】JDK源码学习之Vector(附带面试题) 什么是 Vector ?它的作用是什么?它的底层由什么组成?是否是线程安全的? 老样子,跟着上面的问题,我们层层深入了解 Vector 吧。 1、…

Linux——linux面试题

cat a.txt | cut -d "/" -f 3 | sort | uniq -c |sort -nrgrep ESTABLISHED | awk -F " " {print $5} |cut -d ":" -f 1 | sort |uniq -c | sort -nr找回mysql的root用户的密码 首先,进入到/etc/my.cnf,插入一句skip-gra…

Apache Hudi Timeline

Timeline | Apache Hudi Hudi维护了在不同时刻在表上执行的所有操作的时间线,这有助于提供表的即时视图,同时也有效地支持按到达顺序检索数据。Hudi的核心是维护表上在不同的即时时间(instants)执行的所有操作的时间轴&#xff08…

windows下配置chrome浏览器驱动的详细攻略

要想使用python去爬取互联网上的数据,尤其是要模拟登录操作。那么selenium包肯定是绕不过的。 selenium包本质上就是通过后台驱动的方式驱动浏览器去。以驱动chrome浏览器为例,搭建环境如下: 1、查看本机chrome浏览器的版本。 方式是&#x…