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

常用类

说明
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类中的DrawString方法

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.mzph.cn/web/63398.shtml

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

相关文章

谁说C比C++快?

看到这个问题,我我得说:这事儿没有那么简单。 1. 先把最大的误区打破 "C永远比C快" —— 某位1990年代的程序员 这种说法就像"自行车永远比汽车省油"一样荒谬。我们来看个例子: // C风格 char* str (char*)malloc(100…

【ADS射频电路学习笔记】1. ADS基本操作

下面介绍ADS中主要仿真器的使用 1. 直流仿真 直流仿真器在控制面板的simulator-dc 直流仿真器 但是ADS自带有很多仿真器,可以直接来调用 选用晶体管电流扫描的模板 就可以输出模板 然后调入晶体管模型 然后要设置扫描的电压,选择dc仿真器对vds进行扫描…

CSS学习记录12

CSS浮动 CSSfloat属性规定元素如何浮动 CSSclear属性规定哪些元素可以在清除的元素旁边以及在哪一侧浮动。 float属性 float属性用于定位和格式化内容,例如让图像向左浮动到容器的文本那里。 float属性可以设置以下值之一: left - 元素浮动到其容器…

Chinese-Clip实现以文搜图和以图搜图(transformers版)

本文不生产技术,只做技术的搬运工! 前言 作者昨天使用cn_clip库实现了一版,但是觉得大家复现配置环境可能有点复杂,因此有使用transformers库实现了一版,提供大家选择,第一篇参考链接如下: Ch…

【Unity3D】无限循环列表(扩展版)

基础版:【Unity技术分享】UGUI之ScrollRect优化_ugui scrollrect 优化-CSDN博客 using UnityEngine; using UnityEngine.UI; using System.Collections.Generic;public delegate void OnBaseLoopListItemCallback(GameObject cell, int index); public class BaseLo…

springboot检测配置是否存在,如果存在则返回,不存在则提示新增

我这里是以七牛为例子 在yml中添加七牛的相关配置 qiniu: #七牛的相关配置accessKey: your_access_keysecretKey: your_secret_keybucket: your_bucket_namedomain: your_domain 对应在给配置文件来一个相应的实体类QiniuConfig Component ConfigurationProperties(prefix &…

[NOIP2016 普及组] 海港 -STL-队列queue

[NOIP2016 普及组] 海港 题目背景 NOIP2016 普及组 T3 题目描述 小 K 是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。 小 K 对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一…

【Vulkan入门】16-IndexBuffer

TOC 先叨叨 上篇介绍了如何使用VertexBuffer传入顶点信息。两个多星期了我们一直在玩三个点,本篇介绍如何渲染更多的点。 在渲染前考虑一个问题,渲染一个三角形需要三个点,渲染两个相接的三角形需要几个点? 答案是6个点&#xf…

IDEA 打包普通JAVA项目为jar包

需求:普通java项目(有添加依赖的jar包),没有用maven管理依赖和打包,要打成jar包,包可以用“java -jar 包名” 启动程序。 讲如何打包前,先记录下普通项目的目录结构和怎么添加依赖包 1.目录结…

python的流程控制语句之制作空气质量评估系统

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

【数据结构——线性表】单链表的基本运算(头歌实践教学平台习题)【合集】

目录😋 任务描述 相关知识 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:编写一个程序实现单链表的基本运算。 相关知识 为了完成本关任务,你需要掌握:初始化线性表、销毁线性表、判定是否为空表、求线性…

git branch -r(--remotes )显示你本地仓库知道的所有 远程分支 的列表

好的,git branch -r 这个命令用于列出远程分支。让我详细解释一下: 命令: git branch -rdgqdgqdeMac-mini ProductAuthentication % git branch -rorigin/main作用: 这个命令会显示你本地仓库知道的所有 远程分支 的列表。它不…

【AI热点】小型语言模型(SLM)的崛起:如何在AI时代中找到你的“左膀右臂”?

人工智能模型的演变 多年来,谷歌等科技巨头和OpenAI等初创公司,一直在不遗余力地利用海量在线数据,打造更大、更昂贵的人工智能(AI)模型。这些大型语言模型(LLM)被广泛应用于ChatGPT等聊天机器…

【昇腾】NPU ID:物理ID、逻辑ID、芯片映射关系

起因: https://www.hiascend.com/document/detail/zh/Atlas%20200I%20A2/23.0.0/re/npu/npusmi_013.html npu-smi info -l查询所有NPU设备: [naienotebook-npu-bd130045-55bbffd786-lr6t8 DCNN]$ npu-smi info -lTotal Count : 1NPU…

Elasticsearch-DSL高级查询操作

一、禁用元数据和过滤数据 1、禁用元数据_source GET product/_search {"_source": false, "query": {"match_all": {}} }查询结果不显示元数据 禁用之前: {"took" : 0,"timed_out" : false,"_shards" : {&quo…

基于Spring Boot的体育商品推荐系统

一、系统背景与目的 随着电子商务的快速发展和人们健康意识的提高,体育商品市场呈现出蓬勃发展的态势。然而,传统的体育商品销售方式存在商品种类繁多、用户选择困难、个性化需求无法满足等问题。为了解决这些问题,基于Spring Boot的体育商品…

【Java Nio Netty】基于TCP的简单Netty自定义协议实现(万字,全篇例子)

基于TCP的简单Netty自定义协议实现(万字,全篇例子) 前言 有一阵子没写博客了,最近在学习Netty写一个实时聊天软件,一个高性能异步事件驱动的网络应用框架,我们常用的SpringBoot一般基于Http协议&#xff0…

【2025最新计算机毕业设计】基于SSM校园歌手赛事管理系统【提供源码+答辩PPT+文档+项目部署】

作者简介:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容:🌟Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…

Visual Studio 使用 GitHub Copilot 协助调试

🎀🎀🎀【AI辅助编程系列】🎀🎀🎀 Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码Visual Studio 安装和管理 GitHub CopilotVisual Studio 使用 GitHub Copilot 扩展Visual Studio 使用 GitHu…

了解ARM的千兆以太网——RK3588

1. 简介 本文并不重点讲解调试内容,重点了解以太网在ARM设计中的框架以及在设备树以及驱动的一个整体框架。了解作为一个驱动开发人员当拿到一款未开发过的ARM板卡应该怎么去把网卡配置使用起来。 2. 基础知识介绍 在嵌入式ARM中实现以太网的解决方案通常有以下两种…