C#绘制面形图

创建windows窗体应用 ,从工具箱添加Button和Panel

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace 绘制面形图
{public partial class Form1 : Form{public Form1(){InitializeComponent();}Graphics g;//创建Graphics对象private void button1_Click(object sender, EventArgs e){Bitmap bt = new Bitmap(panel1.Width, panel1.Height);//实例化一个Bitmap对象int flag = (panel1.Width - 4) / 6;//X轴的增值g = Graphics.FromImage(bt);//实例化Graphics对象Pen p = new Pen(Color.Black, 1);//设置Pen对象g.DrawLine(p, new Point(0, 0), new Point(0, panel1.Height - 20));//绘制Y轴/从上往下画g.DrawLine(p, new Point(0, panel1.Height - 20), new Point(panel1.Width - 4, panel1.Height - 20));//绘制X轴//声明一个用于绘制颜色的数组Color[] cl = new Color[] { Color.Red, Color.Blue, Color.YellowGreen, Color.Yellow, Color.RoyalBlue, Color.Violet, Color.Tomato };int[] points = { 70, 70, 80, 60, 40, 100, 10 };//声明一个计算走势峰值的数组Point pt1 = new Point(0, panel1.Height - 20 - points[0]);//记录绘制四边形的第一个点Point pt2 = new Point(0, panel1.Height - 20);//记录绘制四边形的第二个点for (int i = 0; i <= 6; i++)//通过for循环绘制月份和面形图{PointF p1 = new PointF(flag * i, panel1.Height - 20);//计算每个月份数字的坐标//绘制显示月份的数字g.DrawString(i.ToString(), new Font("宋体", 9), new SolidBrush(Color.Black), new PointF(p1.X - 2, p1.Y));//记录绘制四边形的第三个点Point pt3 = new Point(flag * i, panel1.Height - 20);//记录绘制四边形的第四个点Point pt4 = new Point(flag * i, panel1.Height - 20 - points[i]);Point[] pt = { pt1, pt2, pt3, pt4 };//声明一个Point数组g.FillPolygon(new SolidBrush(cl[i]), pt);//填充四边形的颜色//当继续绘制下一个四边形时,前一个四边形的最后两个点作为下一个四边形的起始点pt1 = pt4;pt2 = pt3;}panel1.BackgroundImage = bt;//显示绘制的面形图}private void Form1_Load(object sender, EventArgs e){}}
}

 运行,点击按钮:

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

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

相关文章

array go 语言的数组 /切片

内存地址通过& package mainimport "fmt"func main() {var arr [2][3]int16fmt.Println(arr)fmt.Printf("arr的地址是: %p \n", &arr)fmt.Printf("arr[0]的地址是 %p \n", &arr[0])fmt.Printf("arr[0][0]的地址是 %p \n"…

Express:快速搭建Node.js应用的基石

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Redis技术学习|实战项目记录|商户缓存

学习资料声明 黑马程序员的Redis学习视频&#xff1a;黑马程序员Redis入门到实战教程 需要用到的知识&#xff1a;linux&#xff08;推荐韩顺平老师的教程&#xff0c;学到p30&#xff0c;创建好虚拟机和简单的几个命令就好。&#xff09;SSM。SpringBoot。 还用到了MybatisPl…

mysql基础3索引

存储引擎 存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式 。存储引擎是基于表的&#xff0c;而不是 基于库的&#xff0c;所以存储引擎也可被称为表类型。 1). 建表时指定存储引擎 CREATE TABLE 表名(字段1 字段1类型 [ COMMENT 字段1注释 ] ,......字段n…

nodejs+vue高校失物招领平台python-flask-django-php

时代在飞速进步&#xff0c;每个行业都在努力发展现在先进技术&#xff0c;通过这些先进的技术来提高自己的水平和优势&#xff0c;高校失物招领平台当然不能排除在外。高校失物招领平台是在实际应用和软件工程的开发原理之上&#xff0c;运用nodejs语言以及express框架进行开发…

机器学习——GBDT算法

机器学习——GBDT算法 在机器学习领域&#xff0c;梯度提升决策树&#xff08;Gradient Boosting Decision Trees&#xff0c;简称GBDT&#xff09;是一种十分强大且常用的集成学习算法。它通过迭代地训练决策树来不断提升模型性能&#xff0c;是一种基于弱学习器的提升算法。…

微信小程序Skyline搜索框吸顶到navtab胶囊位置,丝滑Q弹动画

进入下面小程序可以体验效果&#xff1a; 基于官方原版demo加入了回弹动画 WXML: <scroll-viewclass"scroll-area"type"custom"scroll-yshow-scrollbar"{{false}}"worklet:onscrollend"handleScrollEnd"worklet:onscrollupdate&q…

正弦实时数据库(SinRTDB)简介

正弦实时数据库是长沙巨松软件科技有限公司为了解决工业传感器产生的海量数值型数据的存储、计算等需求而研发的产品。广泛应用于电力、冶金、石油、化工、燃气等多个领域。 正弦实时数据库的主要特点如下&#xff1a; 性能 单机支持管理一百万标签点。单机支持并发用户数超…

【教学类-50-01】20240324 “逻辑思维-得到APP”题目《七位考生上场排序》

作品展示&#xff1a; 背景需求&#xff1a; 2024年3月22日得到发布一道测试题&#xff0c;作为报名入门题&#xff08;营销题&#xff09; 母亲是逻辑思维得到APP的用户&#xff0c;她让我动脑做一下 我觉得可以用python写个代码做一下 通过排除法&#xff0c;获得72种符合问…

C++之移动语义与智能指针

目录 移动语义 1、几个基本概念的理解 2、复制控制语义的函数 3、移动控制语义的函数 3.1、移动构造函数: 3.2、移动赋值函数 4.区别 5、std::move函数 6.代码演示: 资源管理与智能指针 一、C语言中的问题 二、C的解决办法(RAII技术)&#xff1a; 三、四种智能指针…

就业班 第二阶段 2401--3.19 day4 主从复制

一、MySQL-Replication&#xff08;主从复制&#xff09; 1.1、MySQL Replication 主从复制&#xff08;也称 AB 复制&#xff09;允许将来自一个MySQL数据库服务器&#xff08;主服务器&#xff09;的数据复制到一个或多个MySQL数据库服务器&#xff08;从服务器&#xff09;…

【项目设计】基于MVC的负载均衡式的在线OJ

项目代码&#xff08;可直接下载运行&#xff09; 一、项目的相关背景 学习编程的小伙伴&#xff0c;大家对力扣、牛客或其他在线编程的网站一定都不陌生&#xff0c;这些编程网站除了提供了在线编程&#xff0c;还有其他的一些功能。我们这个项目只是做出能够在线编程的功能。…