| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5324 人关注过本帖
标题:WPF中利用LightningChart绘制温度曲线图
只看楼主 加入收藏
chart
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-3-28
收藏
 问题点数:0 回复次数:1 
WPF中利用LightningChart绘制温度曲线图
最近在做一个“基于C#语言的电炉温控制软件设计”的设计,我在大学并不是专业学习C#语言编程的,对C#的学习研究完全是处于兴趣,所以编程技术也不是很厉害,遇到问题多参照网络上的开源码。
这不,在做这个课题的时候就遇到了这么一个问题,既然是要控制电炉温,就离不开温度曲线的实时绘制显示,就希望能够有那么一个控件能够完成曲线绘制,寻遍网络,尝试过许多控件,也试过VisualStudio2015中的Chart控件,效果都不是很好。有的网友说在Panel中直接DrawLine就行,我觉得更不行,CSDN中也有小伙伴提供使用pictureBox绘制的方法,但在我看来,还是不是十分理想。
在多次搜索下,终于找到了这么一个相当完美的控件:LightningChart 。

接下来就介绍一下,我用LightningChart绘制曲线的编程思路。

先给大家看一下最后的效果图吧,以便不是想要这种效果的小伙伴另寻他法:
图片附件: 游客没有浏览图片的权限,请 登录注册


这儿不得不提一下LightningChart的一个优点:在图中的曲线绘制区域滑动滚轮,还能随意地放大和缩小曲线便于观察曲线的细节,这儿附上向后滑动鼠标滚轮缩小曲线后的效果图
图片附件: 游客没有浏览图片的权限,请 登录注册


用了LightningChart才发现它的强大,上图就是理想中我想要达到的效果。
这儿附上具体的绘制曲线的代码:
using System;
using System.Collections.Generic;
using
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
//添加引用集
using Arction.WinForms.Charting;
using Arction.WinForms.Charting.SeriesXY;
 
namespace WindowsFormsApplication5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //画线方法
        private void PaintLine()
        {
            DataBaseOpe ope = new DataBaseOpe();
            //禁用属性改变引起的重画,以便更快的渲染
            lightningChartUltimate1.BeginUpdate();
            //lightningChartUltimate1.Dock = DockStyle.Fill;
            //添加点线系列
            PointLineSeries pls = new PointLineSeries(lightningChartUltimate1.ViewXY,
                                                      lightningChartUltimate1.ViewXY.XAxes[0],
                                                      lightningChartUltimate1.ViewXY.YAxes[0]);
            //显示点
            pls.PointsVisible = false;
            SeriesPoint[] aPoints = new SeriesPoint[1000];
            for (int iPoint = 0; iPoint < ope.GetXmax() + 1; iPoint++)
            {
                aPoints[iPoint].X = (double)iPoint;
                aPoints[iPoint].Y = ope.GetYvalue(iPoint);
            }
            //为点线系列分配数据
            pls.Points = aPoints;
            //将点线系列添加进列表
            lightningChartUltimate1.ViewXY.PointLineSeries.Add(pls);
            //允许Chart绘图
            lightningChartUltimate1.EndUpdate();
        }
 
        private void buttonGO_Click(object sender, EventArgs e)
        {
            DataBaseOpe ope = new DataBaseOpe();
            PIDdeal pid = new PIDdeal();
            //LightningChart初始化
            lightningChartUltimate1.ViewXY.PointLineSeries.Clear();
            //数据库初始化:清空数据库
            ope.ClearDataBase();
            //PID变量初始化
            pid.PIDinit();
            pid.SetValue = double.Parse(textBoxSetValue.Text);
            double p = double.Parse(textBoxKp.Text);
            double i = double.Parse(textBoxKi.Text);
            double d = double.Parse(textBoxKd.Text);
            for(int j = 0;j < 1000;j++)
            {
                ope.AddData(j, pid.PIDcontrol(pid.SetValue, p, i, d));
            }
            PaintLine();
        }
    }
}

当然,要实现上面图中的效果图还需要用到数据库操作和PID算法的C#实现方法这两个关键点,加上一个timer控件还可以实现实时曲线的绘制,我已经实现实时曲线的绘制,但最近还没有时间将两个融合,我会把两个项目都上传,大家可以试一下,稍作改动便可实现实时曲线的绘制。感兴趣的小伙伴可以下载我上传的完整项目文件进行查看,菜鸟之作,还望海涵。

这儿是想着重向大家介绍一下LightningChart这个控件。
我只是初步接触了这款组件,但其功能之强大令我叹为观止。LightningChart是一款快速、先进的2D和3D图表,支持WPF和WinForms平台,是一款获得了VisualStudio五星好评的.NET组件。
除了我上面用到的最简单的绘制曲线功能外,它还有其他十分强大的功能,如下图所示:
图片附件: 游客没有浏览图片的权限,请 登录注册


它里面包含了很多很多种图表绘制的例子,可供程序猿们实现各种各样的数据可视化操作。
搜索更多相关主题的帖子: 绘制 曲线 using System double 
2018-07-02 17:47
superkingdom
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-7-17
收藏
得分:0 
LiveCharts效果比这个好

图书里,龙不吟虎不啸,小小书僮可笑可笑
棋盘里,车无轮马无韁,叫声将军提防提防
2020-10-10 10:11
快速回复:WPF中利用LightningChart绘制温度曲线图
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051523 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved