iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >C#怎么绘制实时曲线
  • 924
分享到

C#怎么绘制实时曲线

2023-06-29 05:06:30 924人浏览 独家记忆
摘要

这篇文章主要讲解了“C#怎么绘制实时曲线”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#怎么绘制实时曲线”吧!要做一个调试工具,采集传感器数据并显示。绘制曲线注意坐标反转,线条的张力即可。

这篇文章主要讲解了“C#怎么绘制实时曲线”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#怎么绘制实时曲线”吧!

要做一个调试工具,采集传感器数据并显示。绘制曲线注意坐标反转,线条的张力即可。项目中的曲线是从右往左显示的,线条的坐标都放在list里了,效果如下图:

C#怎么绘制实时曲线

上代码

public class DrawinGCurve    {        private Graphics graphics; //Graphics 类提供将对象绘制到显示设备的方法        private Bitmap bitmap; //位图对象        private int timeLine = 60;//60s        private int canvasWidth = 600;//画布长度        private int sliceCount = 0;//刻度分段个数 = timeLine        private int xSlice = 10;//X轴刻度分端宽度        private int xSliceHeight = 10;//X轴刻度高度        private float tension = 0.5f; //张力系数        private bool showX = true;        private bool showY = true;        private bool showZ = true;         //Queue<PointF> que = new Queue<PointF>();//曲线fifo        /// <summary>        /// 构造函数        /// </summary>        public DrawingCurve() {            this.xSlice = this.canvasWidth / timeLine;        }         /// <summary>        /// 绘制画布        /// </summary>        /// <param name="width"></param>        /// <param name="height"></param>        /// <param name="points"></param>        /// <returns></returns>        public Bitmap DrawCanvas(int width, int height,List<float> points)        {            if (bitmap != null)            {                bitmap.Dispose();                bitmap = null;            }             bitmap = new Bitmap(width, height);            graphics = Graphics.FromImage(bitmap);            graphics.FillRectangle(Brushes.Black, new Rectangle(0, 0, width, height));            graphics.TransfORM = new Matrix(1, 0, 0, -1, 0, 0);//Y轴向上为正,X向右为            graphics.TranslateTransform(0, height / 2, MatrixOrder.Append);                        Pen pen = new Pen(Color.Red, 1);            pen.DashStyle = DashStyle.Custom;            pen.DashPattern = new float[] { 2, 2 };            graphics.DrawLine(pen, new Point(0, height / 4), new Point(width, height / 4));            graphics.DrawLine(pen, new Point(0, height / -4), new Point(width, height / -4));            graphics.DrawLine(new Pen(Color.GreenYellow,1), new Point(0, 0), new Point(width, 0));            graphics.DrawString("0", new Font("Vendara",10), Brushes.White, new Point(0, -15));            graphics.DrawString("+", new Font("Vendara", 10), Brushes.White, new Point(0, height / 4));            graphics.DrawString("-", new Font("Vendara", 10), Brushes.White, new Point(0, height / -4-15));            graphics.Transform = new Matrix(1, 0, 0, 1, 0, 0);//Y轴向上为正,X向右为            graphics.TranslateTransform(0, height / 2, MatrixOrder.Append);            graphics.DrawString("-59s", new Font("Vendara", 8), Brushes.White, new Point(0, height/2-15));            graphics.DrawString("0s", new Font("Vendara", 8), Brushes.White, new Point(width-20, height / 2 - 15));            for (int i = 0; i < timeLine; i++)            {                int scale = i * xSlice;                graphics.DrawLine(new Pen(new SolidBrush(Color.Blue)), 0 + scale, 0 + xSliceHeight * 0.1f, 0 + scale, 0 - xSliceHeight * 0.1f);            }             graphics.Transform = new Matrix(-1, 0, 0, -1, 0, 0);//Y轴向上为正,X向右为            graphics.TranslateTransform(width, height / 2, MatrixOrder.Append);             if (showX) DrawX(graphics, points);            if (showY) DrawY(graphics, points);            if (showZ) DrawZ(graphics, points);            graphics.Dispose();            return bitmap;        }         #region 绘制曲线        private void DrawX(Graphics graphics, List<float> points)        {            Pen CurvePen = new Pen(Color.Cyan, 2);            PointF[] CurvePointF = new PointF[points.Count];            float keys = 0;            float values = 0;            for (int i = 0; i < points.Count; i++)            {                keys = xSlice * i;                values = 10 * (points[i] / 10);                CurvePointF[i] = new PointF(keys, values);            }            graphics.DrawCurve(CurvePen, CurvePointF, this.tension);        }         private void DrawY(Graphics graphics, List<float> points)        {            Pen CurvePen = new Pen(Color.Purple, 2);            PointF[] CurvePointF = new PointF[points.Count];            float keys = 0;            float values = 0;            for (int i = 0; i < points.Count; i++)            {                keys = xSlice * i;                values = 10 * (points[i] / 10);                CurvePointF[i] = new PointF(keys, values);            }            graphics.DrawCurve(CurvePen, CurvePointF, this.tension);        }         private void DrawZ(Graphics graphics, List<float> points)        {            Pen CurvePen = new Pen(Color.OrangeRed, 2);            PointF[] CurvePointF = new PointF[points.Count];            float keys = 0;            float values = 0;            for (int i = 0; i < points.Count; i++)            {                keys = xSlice * i;                values = 10 * (points[i] / 10);                CurvePointF[i] = new PointF(keys, values);            }            graphics.DrawCurve(CurvePen, CurvePointF, this.tension);        }         /// <summary>        /// 曲线开关        /// </summary>        /// <param name="_xyz"></param>        /// <param name="show"></param>        public void HideCurve(string _xyz,bool show) {            switch (_xyz) {                 case "x":                    showX = show;                    break;                case "y":                    showY = show;                    break;                case "z":                    showZ = show;                    break;                default:                    break;            }        }         #endregion    }

UI上使用ThreadStart进行调用,根据需要设置休眠时间即可,同时设置pictureBox显示即可。

感谢各位的阅读,以上就是“C#怎么绘制实时曲线”的内容了,经过本文的学习后,相信大家对C#怎么绘制实时曲线这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: C#怎么绘制实时曲线

本文链接: https://www.lsjlt.com/news/322752.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#怎么绘制实时曲线
    这篇文章主要讲解了“C#怎么绘制实时曲线”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#怎么绘制实时曲线”吧!要做一个调试工具,采集传感器数据并显示。绘制曲线注意坐标反转,线条的张力即可。...
    99+
    2023-06-29
  • C#怎么绘制实时曲线图
    这篇文章将为大家详细讲解有关C#怎么绘制实时曲线图,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:        /...
    99+
    2023-06-29
  • C#绘制实时曲线的方法
    本文实例为大家分享了C#绘制实时曲线的具体代码,供大家参考,具体内容如下 1.要做一个调试工具,采集传感器数据并显示。绘制曲线注意坐标反转,线条的张力即可。项目中的曲线是从右往左显示...
    99+
    2024-04-02
  • C#绘制实时曲线图的方法详解
    在终端机器上的曲线显示本打算用控件,可控件折腾好长时间也没弄顺,还是自己写的好使,记录下来后面再改进。 //绘图部分的定义 Int32 Draw_To...
    99+
    2024-04-02
  • C#使用Chart绘制曲线
    本文实例为大家分享了C#使用Chart绘制曲线的具体代码,供大家参考,具体内容如下 新建一个控制台应用程序,程序名:WindowsFormsApp2,将下面的代码拷贝进去即可 usi...
    99+
    2024-04-02
  • Matplotlib如何绘制动态实时曲线
    这篇文章主要为大家展示了“Matplotlib如何绘制动态实时曲线”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Matplotlib如何绘制动态实时曲线”这篇文章吧。很多时候,我们需要实时的绘制...
    99+
    2023-06-15
  • Android怎么实现动态曲线绘制
    这篇文章主要介绍了Android怎么实现动态曲线绘制的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android怎么实现动态曲线绘制文章都会有所收获,下面我们一起来看看吧。我们在安卓开发中,有时会用到统计图表的...
    99+
    2023-07-02
  • C#实现chart控件动态曲线绘制
    本文实例为大家分享了C#实现chart控件动态曲线绘制的具体代码,供大家参考,具体内容如下 思想 实验室要做一个动态曲线绘制,网上方法很多,但是缺乏完整代码和效果图的整合,往往总是缺...
    99+
    2024-04-02
  • Python中ROC曲线怎么绘制
    本篇内容介绍了“Python中ROC曲线怎么绘制”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先以支持向量机模型为例先导入需要使用的包,我...
    99+
    2023-06-22
  • Python绘制loss曲线、准确率曲线
    Python 绘制 loss 曲线、准确率曲线 使用 python 绘制网络训练过程中的的 loss 曲线以及准确率变化曲线,这里的主要思想就时先把想要的损失值以及准确率值保存下来,保存到 .txt ...
    99+
    2023-10-05
    python 机器学习 人工智能
  • PyQt5+QtChart实现绘制曲线图
    目录QSplineSeries实现代码效果图QSplineSeries QSplineSeries类将数据序列显示为曲线图。核心代码: spline = QSplineSeries(...
    99+
    2022-12-15
    PyQt5 QtChart绘制曲线图 PyQt5 QtChart曲线图 PyQt5 QtChart
  • Android实现动态曲线绘制
    我们在安卓开发中,有时会用到统计图表的功能,而曲线绘制是其中比较典型的一种,一般是利用给定的坐标点集和安卓自带的绘图模块进行绘制,直接得到的是一张完整的静态的曲线图。但有时,我们需要...
    99+
    2024-04-02
  • Python中怎么绘制各种曲线
    本篇文章为大家展示了 Python中怎么绘制各种曲线,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python 代码如下:import numpy as np ...
    99+
    2023-06-15
  • HTML5中怎么用canvas绘制曲线
    本文小编为大家详细介绍“HTML5中怎么用canvas绘制曲线”,内容详细,步骤清晰,细节处理妥当,希望这篇“HTML5中怎么用canvas绘制曲线”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起...
    99+
    2024-04-02
  • Python中ROC曲线绘制
    首先以支持向量机模型为例 先导入需要使用的包,我们将使用roc_curve这个函数绘制ROC曲线! from sklearn.svm import SVC from sklea...
    99+
    2024-04-02
  • C语言如何实现绘制LoveBeat爱心曲线
    这篇文章主要讲解了“C语言如何实现绘制LoveBeat爱心曲线”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言如何实现绘制LoveBeat爱心曲线”吧!心形曲线给出心形曲线参数方程如下:...
    99+
    2023-07-05
  • Python+matplotlib怎么实现简单曲线的绘制
    这篇文章主要讲解了“Python+matplotlib怎么实现简单曲线的绘制”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python+matplotlib怎么实现简单曲线的绘制”吧!一、安...
    99+
    2023-06-30
  • 怎么利用Python绘制科赫曲线
    本篇内容主要讲解“怎么利用Python绘制科赫曲线”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么利用Python绘制科赫曲线”吧!1. 递归1.1 定义函数作为一种代码封装, 可以被其他程序...
    99+
    2023-06-30
  • C#如何实现chart控件动态曲线绘制
    这篇文章将为大家详细讲解有关C#如何实现chart控件动态曲线绘制,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下思想实验室要做一个动态曲线绘制,网上方法很多,但是缺乏完整代码和效果图的整合,往...
    99+
    2023-06-29
  • 怎么使用HTML5的Canvas绘制曲线
    今天小编给大家分享一下怎么使用HTML5的Canvas绘制曲线的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作