使用System.Drawing绘制基本几何图形

1.使用System.Drawing绘制一个正方形

using System;
using System.Drawing;
using System.Windows.Forms;public partial class MyForm : Form
{public MyForm(){// 你可以在这里设置Form的双缓冲,以避免绘制时出现的闪烁  this.DoubleBuffered = true;}protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);// 创建一个Pen对象,用于绘制正方形  using (Pen pen = new Pen(Color.Black, 2)) // 你可以更改颜色和线条宽度  {// 设置正方形的位置和大小  // 在这个例子中,我们从(50, 50)开始,大小为100x100  Rectangle rect = new Rectangle(50, 50, 100, 100);// 使用Graphics对象的DrawRectangle方法来绘制正方形  e.Graphics.DrawRectangle(pen, rect);}}[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new MyForm());}
}

 

2. 使用System.Drawing绘制一个长方形

using System;
using System.Drawing;
using System.Windows.Forms;public partial class MyForm : Form
{public MyForm(){// 你可以在这里设置Form的双缓冲,以避免绘制时出现的闪烁  this.DoubleBuffered = true;}protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);// 创建一个Pen对象,用于绘制长方形  using (Pen pen = new Pen(Color.Black, 2)) // 你可以更改颜色和线条宽度  {// 设置长方形的位置和大小  // 在这个例子中,我们从(50, 50)开始,宽度为200,高度为100  Rectangle rect = new Rectangle(50, 50, 200, 100);// 使用Graphics对象的DrawRectangle方法来绘制长方形  e.Graphics.DrawRectangle(pen, rect);}}[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new MyForm());}
}

3.使用System.Drawing绘制一个圆形

using System;
using System.Drawing;
using System.Windows.Forms;public partial class MyForm : Form
{public MyForm(){// 你可以在这里设置Form的双缓冲,以避免绘制时出现的闪烁  this.DoubleBuffered = true;}protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);// 创建一个Pen对象,用于绘制圆形的边框  using (Pen pen = new Pen(Color.Black, 2)) // 你可以更改颜色和线条宽度  {// 创建一个Brush对象,用于填充圆形(如果需要的话)  using (Brush brush = new SolidBrush(Color.LightBlue)) // 你可以更改填充颜色  {// 设置圆形的位置和大小  // 在这个例子中,圆心在(100, 100),半径为50  int centerX = 100;int centerY = 100;int radius = 50;// 绘制圆形的边框(使用DrawEllipse方法)  e.Graphics.DrawEllipse(pen, centerX - radius, centerY - radius, 2 * radius, 2 * radius);// 如果你想要填充圆形,可以使用FillEllipse方法  // e.Graphics.FillEllipse(brush, centerX - radius, centerY - radius, 2 * radius, 2 * radius);  }}}[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new MyForm());}
}

 

4.使用System.Drawing绘制一个三角形 

using System;
using System.Drawing;
using System.Windows.Forms;public partial class MyForm : Form
{public MyForm(){// 你可以在这里设置Form的双缓冲,以避免绘制时出现的闪烁  this.DoubleBuffered = true;}protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);// 创建一个Pen对象,用于绘制三角形的边  using (Pen pen = new Pen(Color.Black, 2)) // 你可以更改颜色和线条宽度  {// 设置三角形的三个顶点  Point point1 = new Point(50, 50);Point point2 = new Point(150, 50);Point point3 = new Point(100, 150);// 绘制三条线以构成三角形  e.Graphics.DrawLine(pen, point1, point2);e.Graphics.DrawLine(pen, point2, point3);e.Graphics.DrawLine(pen, point3, point1);}}[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new MyForm());}
}

 

5.使用System.Drawing绘制一个五角星 

using System;
using System.Drawing;
using System.Windows.Forms;public partial class MyForm : Form
{public MyForm(){// 你可以在这里设置Form的双缓冲,以避免绘制时出现的闪烁  this.DoubleBuffered = true;}protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);// 创建一个Pen对象,用于绘制五角星  using (Pen pen = new Pen(Color.Black, 2)) // 你可以更改颜色和线条宽度  {// 设定五角星的中心点  int centerX = 100;int centerY = 100;// 设定五角星的外接圆半径  int radius = 50;// 设定五角星的旋转角度(如果需要)  double rotateAngle = Math.PI / 2; // 从上顶点开始  // 计算五角星的五个顶点  PointF[] starPoints = CalculateStarPoints(centerX, centerY, radius, 5, rotateAngle);// 绘制五角星  for (int i = 0; i < starPoints.Length; i++){int nextIndex = (i + 1) % starPoints.Length;e.Graphics.DrawLine(pen, starPoints[i], starPoints[nextIndex]);}}}// 计算五角星的顶点  private PointF[] CalculateStarPoints(float centerX, float centerY, float radius, int spikes, double rotation){PointF[] result = new PointF[spikes];double outerRadius = radius; // 外接圆半径  double innerRadius = radius * 0.5f * Math.Sqrt(3); // 内接圆半径(五角星的特殊值)  double angle = Math.PI / 2 * 3 - spikes * Math.PI / spikes; // 第一个顶点的角度  for (int i = 0; i < spikes; i++){result[i].X = (float)(centerX + Math.Cos(angle + rotation) * outerRadius);if (i % 2 == 0){result[i].Y = (float)(centerY + Math.Sin(angle + rotation) * outerRadius);}else{result[i].Y = (float)(centerY + Math.Sin(angle + rotation) * innerRadius);}angle += Math.PI / spikes;}return result;}[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new MyForm());}
}

 

6.使用System.Drawing绘制一个圆外切三角形 

using System;
using System.Drawing;
using System.Windows.Forms;public partial class MyForm : Form
{public MyForm(){// 你可以在这里设置Form的双缓冲,以避免绘制时出现的闪烁  this.DoubleBuffered = true;}protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);// 定义三角形的边长  int sideLength = 100;// 计算外接圆的半径  double radius = sideLength / (2 * Math.Sqrt(3));// 设定外接圆的中心点和三角形的中心点  int centerX = this.ClientSize.Width / 2;int centerY = this.ClientSize.Height / 2;// 计算三角形的顶点  PointF[] trianglePoints = CalculateEquilateralTrianglePoints(centerX, centerY, sideLength);// 绘制外接圆  using (Pen circlePen = new Pen(Color.Blue, 2)){e.Graphics.DrawEllipse(circlePen, centerX - (int)radius, centerY - (int)radius, (int)(radius * 2), (int)(radius * 2));}// 绘制三角形  using (Pen trianglePen = new Pen(Color.Black, 2)){e.Graphics.DrawLines(trianglePen, trianglePoints);}}// 计算等边三角形的三个顶点  private PointF[] CalculateEquilateralTrianglePoints(int centerX, int centerY, int sideLength){PointF[] points = new PointF[3];double angle = Math.PI / 3; // 等边三角形内角的一半  // 第一个顶点(上方)  points[0] = new PointF(centerX, centerY - sideLength / 2);// 第二个顶点(右侧)  points[1] = new PointF((float)(centerX + sideLength / 2 * Math.Cos(angle)),(float)(centerY + sideLength / 2 * Math.Sin(angle)));// 第三个顶点(左侧)  points[2] = new PointF((float)(centerX + sideLength / 2 * Math.Cos(-angle)),(float)(centerY + sideLength / 2 * Math.Sin(-angle)));return points;}[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new MyForm());}
}

7.使用System.Drawing绘制一个圆内接三角形

 

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

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

相关文章

Linux——缓冲区

一、问题引入 我们先来看看下面的代码&#xff1a;我们使用了C语言接口和系统调用接口来进行文件操作。在代码的最后&#xff0c;我们还使用fork函数创建了一个子进程。 #include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<sys/wait.h&…

将jar打包成exe可安装程序,并在html页面唤醒

一、exe4j将jar打包成exe 1.exe4j下载 下载地址&#xff1a;https://www.ej-technologies.com/download/exe4j/files 2.exe4j打包jar 2.1. welcome 可以选择历史配置&#xff0c;新增则直接下一步 2.2. project type选择“jar in exe” mode 2.3. application info设置应用…

【接口测试_03课_-接口自动化思维梳理及Requests库应用】

一、通过代码&#xff0c;实现Jmeter 1、项目要放在虚拟环境里面&#xff0c;解释器要使用虚拟环境的 上面是虚拟环境&#xff0c;下面是系统环境。2选一 venv目录 查看当前虚拟环境已存在的依赖包 2、安装Requests依赖包 1&#xff09;安装命令 pip install requests 如果…

防火墙技术的演进,什么是下一代防火墙(NGFW)?

防火墙技术的演进 防火墙技术的演进经历了不同阶段&#xff0c;从包过滤防火墙到状态检测防火墙&#xff0c;再到集成多种安全功能的UTM&#xff08;统一威胁管理&#xff09;设备&#xff0c;最终发展到具备应用识别能力的NGFW&#xff08;下一代防火墙&#xff09;。 包过滤…

DTAS 尺寸公差分析及尺寸链计算-建模神器 — 用户DIY装配

工业互联网&#xff08;工业4.0) 是未来智能制造的核心&#xff0c;工业软件是智能制造的灵魂。 相关工业软件及系统的自主研发是智能制造和质量升级转型亟需解决的卡脖子环节&#xff0c;而公差分析软件系统是前期质量研发精准设计、降本增效的关键。 数字化时代&#xff0…

知了汇智副总经理赵懋骏出席“走进阿里”CEO联席会,共话AI大模型新趋势

在智能科技日新月异的今天&#xff0c;汇智知了堂副总经理赵懋骏于3月28日受邀出席了在天府软件园举行的“走进阿里–2024年CEO联席会”&#xff0c;会议聚焦阿里云AI技术的最新进展与行业应用&#xff0c;特别是“AI技术正在加速变革&#xff1a;大模型的历史、现在与趋势”&a…

手撕C语言题典——环形链表的约瑟夫问题

目录 前言 一.故事背景 二.题目 ​编辑三.思路 1&#xff09;数组 ​编辑2&#xff09; 循环链表 四.代码实现 搭配食用更佳哦~~ 数据结构之单单单——链表-CSDN博客 数据结构之单链表的基本操作-CSDN博客 前面学了单链表的相关知识&#xff0c;我们来尝试做一下关于…

灌区信息化管理平台系统包含哪些内容?(全面介绍)

政策背景 2022年12月29日&#xff0c;水利部启动48处大中型灌区开展数字孪生灌区先行先试建设。 2023年2月24日&#xff0c;《2023年农村水利水电工作要点》:2023年农村水利水电工作的总体思路包括:紧盯保障国家粮食安全&#xff0c;加快推进大中型灌区现代化改造&#xff0c;…

bmi088-linux驱动(I2C)

电气特性&#xff1a; 在正常工作时&#xff0c;gyro 工作电流为5mA&#xff0c;acc 工作电流为150uA。 SPI 时钟和数据电平范围 0 -3.6 结构框图如下&#xff1a; 硬件连接图如下&#xff1a; note&#xff1a; 1. 通过PS引脚选择通讯协议&#xff0c;上拉引脚则选择的是I2C…

系统定期执行命令的方法

系统定期执行命令的方法 一、进入超级用户下 执行命令&#xff1a;sudo su 二、添加要执行的命令 例子&#xff1a;每天0点执行一次myapp.sh命令 先后输入&#xff1a;crontab -e、 1、 回车 设置每天0点执行一次myapp.sh操作&#xff0c;需要写绝对路径 含义&#xff1…

离线修复.dll,Microsoft Visual C++

在安装mysql时遇到下面的问题&#xff0c;如果是有网络的情况下微软管网下载安装就行了&#xff0c;用的服务器不允许连接互联网。 后面经过寻找&#xff0c;找到了一个修复工具&#xff0c;可一次修复所有的问题&#xff0c;特别好用分享给宝子们。 下载链接&#xff1a;http…

树莓派 4B putty远程连接登录显示拒绝访问,密码修改

putty显示拒绝访问 可能是树莓派的ip没有找到正确的 在下载系统镜像的时候&#xff0c;会提示设置wifi 这里设置的WiFi和密码需记住&#xff0c;主机名也需记住 可以在手机打开热点&#xff08;将热点的账号和密码改为跟你设置的wifi一样的&#xff09; 可以在手机后台查看…

微信小程序支付教程

微信小程序支付教程 Person&#xff1a; 微信小程序支付有几种版本&#xff0c;分别是什么&#xff0c;写一个详细教程介绍下 ChatGPT&#xff1a; 微信小程序支付主要有两种版本&#xff0c;分别为&#xff1a;JSSDK版本&#xff08;v1.0&#xff09;和WeixinJSBridge版本&…

Linux —— 线程控制

Linux —— 线程控制 创建多个线程线程的优缺点优点缺点 pthread_self进程和线程的关系pthread_exit 线程等待pthread_ join线程的返回值线程分离pthread_detach 线程取消pthread_cancel pthread_t 的理解 我们今天接着来学习线程&#xff1a; 创建多个线程 我们可以结合以前…

【离散数学】偏序关系中盖住关系的求取及格论中有补格的判定(c语言实现)

实验要求 求n的因子函数 我们将n的因子存入数组中&#xff0c;n的因子就是可以整除n的数&#xff0c;所以我们通过一个for循环来求。返回因子个数。 //求n的因子,返回因子个数 int factors(int arr[], int n) {int j 0;for (int i 1; i < n; i){if (n % i 0){arr[j] i…

C++反向迭代器

C反向迭代器 反向迭代器是用正向迭代器适配实现的&#xff0c;本质是写一个反向迭代器的类模板&#xff0c;给编译器传不同的容器的正向迭代器实例化&#xff0c;编译器去实例化出各种类模板对应的反向迭代器。 #pragma once namespace my_reverse_iterator {template<cla…

关于使用git拉取gitlab仓库的步骤(解决公钥问题和pytho版本和repo版本不对应的问题)

先获取权限&#xff0c;提交ssh-key 虚拟机连接 GitLab并提交代码_gitlab提交mr-CSDN博客 配置完成上诉步骤之后&#xff0c;执行下列指令进行拉去仓库的内容 sudo apt install repo export PATHpwd/.repo/repo:$PATH python3 "实际路径"/repo init -u ssh://gitxx…

Java的类和对象(一)—— 初始类和对象,this关键字,构造方法

前言 从这篇文章开始&#xff0c;我们就进入到了JavaSE的核心部分。这篇文章是Java类和对象的第一篇&#xff0c;主要介绍类和对象的概念&#xff0c;this关键字以及构造方法~~ 什么是类&#xff1f;什么是对象&#xff1f; 学过C语言的老铁们&#xff0c;可以类比struct自定义…

spark结课之tip2

spark常用方法总结&#xff1a; 一、从内部创建RDD (1).通过并行化集合&#xff08;Parallelized Collections&#xff09;&#xff1a; 可以使用SparkContext的parallelize方法将一个已有的集合转换为RDD。 基本语法&#xff1a; parallelize(collection, numSlicesNone)…

AI系列:大语言模型的RAG(检索增强生成)技术(下)-- 使用LlamaIndex

目录 前言什么是LlamaIndex?LlamaIndex代码设置embedding模型设置LLM模型索引查询机 验证使用感受参考资料 前言 继上一篇文章AI系列&#xff1a;大语言模型的RAG&#xff08;检索增强生成&#xff09;技术&#xff08;上&#xff09;&#xff0c;这篇文章主要以LlamaIndex为…