C# 曲线控件 曲线绘制 实时曲线 多曲线控件 开发

Prepare


 本文将使用一个NuGet公开的组件来实现曲线的显示,包含了多种显示的模式和配置来满足各种不同的应用场景,方便大家进行快速的开发系统。

 联系作者及加群方式(激活码在群里发放):Cooperation - HslCommunication 官网

在Visual Studio 中的NuGet管理器中可以下载安装,也可以直接在NuGet控制台输入下面的指令安装:

1

Install-Package HslCommunication

NuGet安装教程  VS使用Nuget教程详解 Visual studio 安装第三方的组件库 - dathlin - 博客园

更强大的历史曲线控件参考:C# 历史曲线控件 基于时间的曲线控件 可交互的高级曲线控件 HslControls曲线控件使用教程 - dathlin - 博客园

Summary


曲线控件属于组件里诸多控件中的一种,为什么单独拿出来写一篇博客呢,就是因为曲线控件相对于其他控件都要复杂很多,并不是几个属性那么简单,下面列举了本曲线控件的特性:

  • 提供便捷的API调用即可显示曲线信息内容,不需要复杂的配置
  • 曲线界面的一些信息可以自由定制,比如坐标轴的颜色,是否显示虚线等等
  • 高度的大小自适应,无论你怎么调整控件的大小,始终都能友好显示
  • 支持数据拉伸填充和像素点填充两种模式,具体区别参照下面的代码
  • 多曲线支持,支持同时显示多个曲线信息,每个曲线可独立的指定颜色,线宽等等。
  • 支持左右两个参考系,就是说一个控件中允许显示2种数据跨度不一致的曲线,每种曲线可以显示多条不同的曲线

 其他控件的说明地址:C# 时间控件 竖直进度条 饼图显示 仪表盘 按钮基础控件库 - dathlin - 博客园

 组件的完整API说明:HslCommunication组件库使用说明 - dathlin - 博客园

要想使用组件的控件,除了使用NuGet来安装组件外,还需要将组件的dll文件(在你的项目的packages里面可以找到,如果你本来就是引用本地的,就直接拖拽本地的即可)拖拽到工具栏:

拖拽完成后效果如下:

先定义一个方法,获取指定范围的,指定个数的随机数数组,供下方的代码调用

1

2

3

4

5

6

7

8

9

private float[] GetRandomValueByCount( int count, float min, float max )

{

    float[] data = new float[count];

    for (int i = 0; i < data.Length; i++)

    {

        data[i] = (float)random.NextDouble( ) * (max - min) + min;

    }

    return data;

}

1.单曲线使用


把控件拖拽到窗口界面上去后,现在界面如下,你可以随意的拉伸大小,调整到一个虚线看着比较清晰的时刻停止:

我们看到左右纵轴的数据跨度都是0-100,现在我们有个需求,手里有300个0-200的数据需要显示,那么就要先设置左右纵轴的数据跨度

接下来就可以编写显示的代码了,一下数据随机:

1

2

3

4

private void userButton1_Click( object sender, EventArgs e )

{

    userCurve1.SetLeftCurve( "A", GetRandomValueByCount( 300, 0, 200 ), Color.DodgerBlue );

}

显示结果如下:

看吧,相当简单方便,如果你觉得目前的数据太密了,想要宽松一点,希望数据拉伸满整个X轴,没问题,因为目前默认的模式是像素点模式,所以切换为拉伸模式即可。

然后在运行看看效果:

接下来我们要对曲线“A”进行数据更新,我们假设你的data数组的数据已经更新了,有可能只更新了一个数据,有可能全部更新了,在数据更新的时候就不需要在指定颜色了,因为指定了颜色也没有用了。

1

2

3

4

5

6

7

8

private void 

  • 8
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值