C#使用Chart绘制曲线
作者:金增辉 发布时间:2023-03-12 19:08:56
标签:C#,Chart,曲线
本文实例为大家分享了C#使用Chart绘制曲线的具体代码,供大家参考,具体内容如下
新建一个控制台应用程序,程序名:WindowsFormsApp2,将下面的代码拷贝进去即可
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;
using System.Windows.Forms.DataVisualization.Charting;
namespace WindowsFormsApp2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
timer1.Interval = 5000;
textBox1.Text = "0";
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void chart1_Click(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
// 设置曲线的样式
Series series = chart1.Series[0];
// 画样条曲线(Spline)
series.ChartType = SeriesChartType.Spline;
// 线宽2个像素
series.BorderWidth = 2;
// 线的颜色:红色
series.Color = System.Drawing.Color.Red;
// 图示上的文字
series.LegendText = "动态曲线";
// 测试代码 数据转换
int values = Convert.ToInt16(textBox1.Text);
// 在chart中显示数据
int x = 0;
series.Points.AddXY(x, values);
x++;
if (x == 100) x = 0;
// 设置显示范围
ChartArea chartArea = chart1.ChartAreas[0];
chartArea.AxisX.Minimum = 0;
chartArea.AxisX.Maximum = System.Double.NaN;
chartArea.AxisY.Minimum = 0d;
chartArea.AxisY.Maximum = System.Double.NaN; //自动去判断
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
}
}
小编分享一段收藏的代码:C#更新数组实现动态曲线:
private void timer定时_Tick(object sender, EventArgs e)
{
if (Flash == 0) //当刷新时
{
Pen middleLine = new Pen(Color.White);
SolidBrush blackBrush = new SolidBrush(Color.Black); //定义了一个单色的黑色画笔
graphic = Graphics.FromImage(pictureBox图像.Image);
graphic.FillRectangle(blackBrush, 0, 0, 500, 251); //将画布填充为黑色矩形
Point pt1 = new Point(0, 125); //中间线的两点
Point pt2 = new Point(500, 125);
graphic.DrawLine(middleLine, pt1, pt2); //画中间线
}
Random random = new Random();
pointList = new Point[50]; //实例化坐标数组*
int data = random.Next(-800, 800); //生成一个随机数
// Point p; //申明一个坐标变量
for (int i = 1; i <50 ; i++) //更新数组
{
N[i - 1] = N[i];
pointList[i - 1] = pointList[i]; //更新点的坐标
}
N[49] = data;
pointList[49].X = 49 * time;
pointList[49].Y = data;
if (Flash == 0)
{
if (Flash == 0)
{
int k1 = 0, k2 = 0;
for (int i = 0; i < 49; i++)
{
k1 = (int)(lineD - N[i] / times);
k2 = (int)(lineD - N[i + 1] / times);
graphic.FillEllipse(new SolidBrush(Color.Red), (i * time), k1, 4, 4); //填充边框所定义的椭圆内部,由椭圆边框左上角坐标和椭圆宽度和高度组成
//graphic.DrawLine(new Pen(Color.FromArgb(255, 255, 0), 1), new Point(i * time, k1), new Point((i + 1) * time, k2)); //两点之间连线
pointList[i].X = i * time; pointList[i].Y = k1;
}
graphic.FillEllipse(new SolidBrush(Color.Red), (49 * time), k2, 4, 4);
graphic.DrawCurve(new Pen(Color.FromArgb(255, 255, 0), 1), pointList, 0.5f);
}
pictureBox图像.Refresh(); //刷新picturebox
}
}
来源:https://blog.csdn.net/qq_18975227/article/details/109226563


猜你喜欢
- 一、摘要总结基于C#的UDP协议的同步通信。 二、实验平台Visual Studio 2010 三、实验原理UDP传输协
- 一.算法效率算法效率分析分为两种:时间效率、空间效率。其中时间效率被称为时间复杂度,空间效率被称为空间复杂度。时间复杂度主要衡量的是一个算法
- 最近项目上需要实现蓝牙传输apk的一个功能,能够搜索周围的蓝牙手机并分享文件。从需求上讲android手机自带的蓝牙传输模块就可以满足需要了
- 逆时针画圆弧,原理:将360度分割成36份,分别标出每10度角度时的坐标点,然后将每个点连接起来。 #include <io
- C#查看堆栈通常是在异常处理中,出现异常之后通过异常的堆栈可以很方便的得到出现这个错误的代码调用路径。这个很有用,是否可以在没有异常出现时使
- 前言:这个语句的作用是,确保该语句执行之后,关闭每一个资源,也就是说它确保了每个资源都在生命周期结束之后被关闭,因此,比如读写文
- 本文实例展示了DevExpress实现为TextEdit设置水印文字的方法,是一个很实用的技巧。分享给大家供大家参考。关键代码如下:publ
- 什么是AOPAOP是Aspect Oriented Programming的缩写,即『面向切面编程』。它和我们平时接触到的OOP都是编程的不
- 域对象共享数据使用ServletAPI向request域对象共享数据@RequestMapping("/testServletAP
- 先贴代码,后面做一些简单说明:public static string sendPostHttpRequest_2(string url,
- 定时任务1import lombok.extern.slf4j.Slf4j;/** * @author Created by niugang
- 最近在学习springboot,session这个点一直困扰了我好久,今天把这些天踩的坑分享出来吧,希望能帮助更多的人。一、pom.xml配
- Android 6.0起,Android加强了权限管理,引入运行时权限概念。对于:1. Android 5.1(API 22)及以前版本,应
- Java调用Oracle存储过程详解步骤:1、编写Oracle存储过程2、编写数据库获取连接工具类3、编写简单应用调用存储过程实现:1、Or
- 使用xml编写动态sql在Resources文件夹下创建一个Mapper文件夹比如我们需要在User表中使用增删改查,创建UserMappe
- 本文实例为大家分享了Javaweb统计在线人数示的具体代码,供大家参考,具体内容如下1. 实现功能统计在线人数显示每个人的sessionId
- 前言对于正则表达式,相信很多人都知道,但是很多人的第一感觉就是难学,因为看第一眼时,觉得完全没有规律可寻,而且全是一堆各种各样的特殊符号,完
- 一、基本概念// 上下文对象 private Context context; public FileService(Context con
- 题目题目要求思路:模拟用一个哈希表记录可出现的字母,然后逐一遍历每个单词每个字母,符合条件则结果加一。Javaclass Solution
- 本文实例为大家分享了ScrollView实现滚动效果的具体代码,供大家参考,具体内容如下如果长文本的内容超过一屏幕 则只能显示一屏幕的内容设