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

C#怎么绘制实时曲线图

2023-06-29 07:06:37 125人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关C#怎么绘制实时曲线图,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:        /

这篇文章将为大家详细讲解有关C#怎么绘制实时曲线图,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

具体如下:

        //绘图部分的定义        Int32 Draw_Top;//绘画Y起点        Int32 Draw_Left;//绘画X起点        Int32 Draw_EdgeWidth;//X边缘宽度        Int32 Draw_EdgeHeight;//Y边缘高度        Int32 Draw_RangeWidth;//绘画范围宽度        Int32 Draw_RangeHeight;//绘画范围高度        Double[] XTDYData = new Double[21];        Int32 ICountDraw=0;                Int32 IActualWidth, IActualHeight;        Int32 Draw_AdjustX = 20;        Int32 Draw_AdjustY = 20;        Point StartPoint = new Point();        Point EndPoint = new Point();        Point ZeroPoint = new Point();        Int32 IScalesY = 11;        Int32 IScalesX = 21;        Int32 IIncrementX;         Pen pSpecial = new Pen(Color.Black,1);        Pen pCommon = new Pen(Color.Black,2);        Font FontTitle = new Font("微软雅黑", 12);//写标题的字体        Font FontText = new Font("微软雅黑", 9);//写正文的字体                   SolidBrush SBTitle = new SolidBrush(Color.Red);        SolidBrush SBText = new SolidBrush(Color.Black);

在数据接收的事件中进行曲线绘制:

                    //显示趋势图                    ICountDraw = ICountDraw + 1;                    if (ICountDraw ==21)                    {                        for (int i=1;i<21;i++)                        {                            XTDYData[i - 1] = XTDYData[i];                        }                        XTDYData[20]= YBDWDealWithData.TYNDianYa.dValue;                        ICountDraw = 20;                    }                    else                    {                        XTDYData[ICountDraw] = YBDWDealWithData.TYNDianYa.dValue;                    }                    FuncDrawYBDW();

下面是基础函数:

        public void FuncDrawYBDW() {            Bitmap bmp = new Bitmap(Draw_RangeWidth, Draw_RangeHeight);//定义画布的大小            Graphics graphics = Graphics.FromImage(bmp);            FuncDrawBasePic(ref graphics);            FuncDrawDynamicPic(ref graphics);            Graphics g = Graphics.FromHwnd(pictureBox1.Handle);            g.DrawImage(bmp, new Point(0, 0));//在内存中画完后显示在pictureBox1上,避免闪烁        }         public void FuncDrawBasePic(ref Graphics YBDWcanvas)        {            //绘制基础            //画一个方框            YBDWCanvas.FillRectangle(Brushes.WhiteSmoke, Draw_Top, Draw_Left, Draw_RangeWidth, Draw_RangeHeight);            //画坐标轴X            pCommon.Width = 2;            pCommon.Color = Color.Black;            StartPoint.X = Draw_Left + Draw_AdjustX;            StartPoint.Y = Draw_Top + Draw_RangeHeight - Draw_AdjustY * 2;            EndPoint.X = Draw_Left + Draw_RangeWidth - Draw_AdjustX * 2;            EndPoint.Y = Draw_Top + Draw_RangeHeight - Draw_AdjustY * 2;            YBDWCanvas.DrawLine(pCommon, StartPoint, EndPoint);            IActualWidth = EndPoint.X - StartPoint.X;            YBDWCanvas.DrawString("X", FontText, SBText, EndPoint.X, EndPoint.Y - 8);            //画箭头            StartPoint.X = EndPoint.X - 8;            StartPoint.Y = EndPoint.Y - 4;            YBDWCanvas.DrawLine(pCommon, StartPoint, EndPoint);            StartPoint.X = EndPoint.X - 8;            StartPoint.Y = EndPoint.Y + 4;            YBDWCanvas.DrawLine(pCommon, StartPoint, EndPoint);            //画坐标轴Y            pCommon.Width = 2;            pCommon.Color = Color.Black;            StartPoint.X = Draw_Left + Draw_AdjustX;            StartPoint.Y = Draw_Top + Draw_AdjustY;            EndPoint.X = Draw_Left + Draw_AdjustX;            EndPoint.Y = Draw_Top + Draw_RangeHeight - Draw_AdjustY * 2;            YBDWCanvas.DrawLine(pCommon, StartPoint, EndPoint);            IActualHeight = EndPoint.Y - StartPoint.Y;            ZeroPoint = EndPoint;            //画画箭头            EndPoint.X = StartPoint.X - 4;            EndPoint.Y = StartPoint.Y + 8;            YBDWCanvas.DrawLine(pCommon, StartPoint, EndPoint);            EndPoint.X = StartPoint.X + 4;            EndPoint.Y = StartPoint.Y + 8;            YBDWCanvas.DrawLine(pCommon, StartPoint, EndPoint);            YBDWCanvas.DrawString("Y", FontText, SBText, EndPoint.X, EndPoint.Y - 8);            //画X刻度            pSpecial.Width = 1;            pSpecial.DashStyle = DashStyle.Custom;            pSpecial.DashPattern = new float[] { 1f, 1f };            IIncrementX = IActualWidth / IScalesX;            for (int i = 1; i < IScalesX; i = i + 1)            {                StartPoint.X = ZeroPoint.X + IIncrementX * i;                StartPoint.Y = ZeroPoint.Y - 2;                EndPoint.X = StartPoint.X;                EndPoint.Y = StartPoint.Y - IActualHeight - 2;                YBDWCanvas.DrawLine(pSpecial, StartPoint, EndPoint);                //写标识字                if (i % 2 == 0)                {                    YBDWCanvas.DrawString(i.ToString(), FontText, SBText, StartPoint.X - 6, StartPoint.Y + 4);                }            }             //画Y刻度            Int32 IIncrementY = IActualHeight / IScalesY;            for (int i = 1; i < IScalesY; i = i + 1)            {                StartPoint.X = ZeroPoint.X;                StartPoint.Y = ZeroPoint.Y - IIncrementY * i;                EndPoint.X = StartPoint.X + IActualWidth;                EndPoint.Y = StartPoint.Y;                YBDWCanvas.DrawLine(pSpecial, StartPoint, EndPoint);                //写标识字                if (i % 2 == 0)                {                    YBDWCanvas.DrawString((i - 1).ToString(), FontText, SBText, StartPoint.X - 12, StartPoint.Y + 4);                }            }            //写标题            //Rectangle YBDWMessRect = new Rectangle(SX, SY, MessageDotRadius * 2, MessageDotRadius * 2);//圆的大小            //YBDWCanvas.FillEllipse(SBTitle, YBDWMessRect);            //画连接线            YBDWCanvas.DrawString(SDrawTitle, FontTitle, SBTitle, 100,30);         }         public void FuncDrawDynamicPic(ref Graphics YBDWCanvas)            {            //准备实际画线的数据            Point[] XTDYPoints =new Point[21];//系统电压数据            for (int i = 0; i < IScalesX; i = i + 1)            {                    XTDYPoints[i].X = ZeroPoint.X + IIncrementX * i;                    XTDYPoints[i].Y = ZeroPoint.Y - (int)((XTDYData[i]/IActualHeight)*6000);            }            pSpecial.Width = 3;            pSpecial.Color = Color.Red;            YBDWCanvas.DrawCurve(pSpecial, XTDYPoints, 3.0F);        }

实际效果图:

C#怎么绘制实时曲线图

点选不同的文字进行相应的实时动态图的显示。

关于“C#怎么绘制实时曲线图”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

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

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

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

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

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

下载Word文档
猜你喜欢
  • C#怎么绘制实时曲线图
    这篇文章将为大家详细讲解有关C#怎么绘制实时曲线图,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:        /...
    99+
    2023-06-29
  • C#怎么绘制实时曲线
    这篇文章主要讲解了“C#怎么绘制实时曲线”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#怎么绘制实时曲线”吧!要做一个调试工具,采集传感器数据并显示。绘制曲线注意坐标反转,线条的张力即可。...
    99+
    2023-06-29
  • C#绘制实时曲线图的方法详解
    在终端机器上的曲线显示本打算用控件,可控件折腾好长时间也没弄顺,还是自己写的好使,记录下来后面再改进。 //绘图部分的定义 Int32 Draw_To...
    99+
    2024-04-02
  • C#绘制实时曲线的方法
    本文实例为大家分享了C#绘制实时曲线的具体代码,供大家参考,具体内容如下 1.要做一个调试工具,采集传感器数据并显示。绘制曲线注意坐标反转,线条的张力即可。项目中的曲线是从右往左显示...
    99+
    2024-04-02
  • PyQt5+QtChart实现绘制曲线图
    目录QSplineSeries实现代码效果图QSplineSeries QSplineSeries类将数据序列显示为曲线图。核心代码: spline = QSplineSeries(...
    99+
    2022-12-15
    PyQt5 QtChart绘制曲线图 PyQt5 QtChart曲线图 PyQt5 QtChart
  • MATLAB怎么用数据绘制曲线图
    要使用MATLAB绘制曲线图,可以按照以下步骤进行:1. 准备数据:首先,准备好要绘制的数据。可以是向量、矩阵或表格数据。2. 创建...
    99+
    2023-10-08
    matlab
  • C#使用Chart绘制曲线
    本文实例为大家分享了C#使用Chart绘制曲线的具体代码,供大家参考,具体内容如下 新建一个控制台应用程序,程序名:WindowsFormsApp2,将下面的代码拷贝进去即可 usi...
    99+
    2024-04-02
  • Matplotlib如何绘制动态实时曲线
    这篇文章主要为大家展示了“Matplotlib如何绘制动态实时曲线”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Matplotlib如何绘制动态实时曲线”这篇文章吧。很多时候,我们需要实时的绘制...
    99+
    2023-06-15
  • Android怎么实现动态曲线绘制
    这篇文章主要介绍了Android怎么实现动态曲线绘制的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android怎么实现动态曲线绘制文章都会有所收获,下面我们一起来看看吧。我们在安卓开发中,有时会用到统计图表的...
    99+
    2023-07-02
  • 怎么用Python绘制论文中的曲线图
    本篇内容主要讲解“怎么用Python绘制论文中的曲线图”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python绘制论文中的曲线图”吧!1.折线图 plt.plot()常用的一些参数:颜色...
    99+
    2023-07-05
  • C#实现chart控件动态曲线绘制
    本文实例为大家分享了C#实现chart控件动态曲线绘制的具体代码,供大家参考,具体内容如下 思想 实验室要做一个动态曲线绘制,网上方法很多,但是缺乏完整代码和效果图的整合,往往总是缺...
    99+
    2024-04-02
  • 怎么用R语言绘制函数曲线图
    这篇文章主要讲解了“怎么用R语言绘制函数曲线图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用R语言绘制函数曲线图”吧!函数曲线图是研究函数的重要工具。R 中 curve() 函数可以绘...
    99+
    2023-06-08
  • Flutter怎么绘制曲线,折线图及波浪动效
    这篇文章主要介绍了Flutter怎么绘制曲线,折线图及波浪动效,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。简介之前用 Flutter 的 Canvas 画点有趣的图形我们介...
    99+
    2023-06-29
  • Python Matplotlib绘制动图平滑曲线
    目录绘制动图FuncAnimationArtistAnimation使用 scipy.ndimage.gaussian_filter1d() 高斯核类绘制平滑曲线使用 scipy.i...
    99+
    2024-04-02
  • Python中ROC曲线怎么绘制
    本篇内容介绍了“Python中ROC曲线怎么绘制”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先以支持向量机模型为例先导入需要使用的包,我...
    99+
    2023-06-22
  • WPF+WriteableBitmap实现高性能曲线图的绘制
    目录一、前言二、正文三、运行效果一、前言 之前分享过一期关于DrawingVisual来绘制高性能曲线的博客,今天再分享一篇通过另一种方式来绘制高性能曲线的方法,也就是通过Write...
    99+
    2022-11-13
    WPF WriteableBitmap绘制曲线图 WPF WriteableBitmap 曲线图 WPF WriteableBitmap
  • android绘制曲线和折线图的方法
    本文实例为大家分享了android绘制曲线和折线图的具体代码,供大家参考,具体内容如下 (曲线)  (折线) 1.CurveView.java package com....
    99+
    2024-04-02
  • 使用R语言怎么绘制函数曲线图
    这期内容当中小编将会给大家带来有关使用R语言怎么绘制函数曲线图,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。R 中 curve() 函数可以绘制函数的图像,代码格式如下:curve(expr, ...
    99+
    2023-06-15
  • Android实现动态曲线绘制
    我们在安卓开发中,有时会用到统计图表的功能,而曲线绘制是其中比较典型的一种,一般是利用给定的坐标点集和安卓自带的绘图模块进行绘制,直接得到的是一张完整的静态的曲线图。但有时,我们需要...
    99+
    2024-04-02
  • 用R语言绘制函数曲线图
    函数曲线图是研究函数的重要工具。 R 中 curve() 函数可以绘制函数的图像,代码格式如下: curve(expr, from = NULL, to = NULL, n = ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作