欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#動(dòng)態(tài)繪制多條曲線(xiàn)的方法

 更新時(shí)間:2022年02月17日 10:17:57   作者:weixin_46896829  
這篇文章主要為大家詳細(xì)介紹了C#動(dòng)態(tài)繪制多條曲線(xiàn)的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C#動(dòng)態(tài)繪制多條曲線(xiàn)的具體代碼,供大家參考,具體內(nèi)容如下

實(shí)時(shí)繪制多條曲線(xiàn),縱軸為數(shù)值,橫軸為時(shí)間,精確到毫秒

實(shí)現(xiàn)效果如下:

代碼:

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;

namespace chartTest
{
? ? public partial class Form1 : Form
? ? {
? ? ? ? private int maxSize=20; ? ? //圖表顯示的數(shù)據(jù)最大數(shù)量
? ? ? ? private Queue<string> getX = new Queue<string>(); ? //存儲(chǔ)x坐標(biāo)
? ? ? ? private Queue<Int32> getY = new Queue<int>(); ? //存儲(chǔ)y坐標(biāo)

? ? ? ? System.Timers.Timer timer1 = new System.Timers.Timer();
? ? ? ? public Form1()
? ? ? ? {
? ? ? ? ? ? InitializeComponent();
? ? ? ? }

? ? ? ? //獲取時(shí)間軸橫坐標(biāo)
? ? ? ? private string ?setX()?
? ? ? ? {
? ? ? ? ? ? string time = DateTime.Now.ToString("mm:ss.fff");
? ? ? ? ? ? /* if (getX.Count > 15)
? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ?getX.Dequeue();
? ? ? ? ? ? ?}
? ? ? ? ? ? ?else?
? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ?getX.Enqueue(time);
? ? ? ? ? ? ?}*/
? ? ? ? ? ? return time;
? ? ? ? }
? ? ? ? //獲取值 縱坐標(biāo)
? ? ? ? private int ?setY1()?
? ? ? ? {
? ? ? ? ? ? int y = new Random().Next(-100, 0);
? ? ? ? ? ? /* if (getY.Count > 15)
? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ?getY.Dequeue();
? ? ? ? ? ? ?}
? ? ? ? ? ? ?else?
? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ?getY.Enqueue(y);
? ? ? ? ? ? ?}*/
? ? ? ? ? ? return y;
? ? ? ? }
? ? ? ? private int setY2()
? ? ? ? {
? ? ? ? ? ? int y = new Random().Next(-200, 100);
? ? ? ? ? ? /* if (getY.Count > 15)
? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ?getY.Dequeue();
? ? ? ? ? ? ?}
? ? ? ? ? ? ?else?
? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ?getY.Enqueue(y);
? ? ? ? ? ? ?}*/
? ? ? ? ? ? return y;
? ? ? ? }
? ? ? ? private int setY3()
? ? ? ? {
? ? ? ? ? ? int y = new Random().Next(100, 300);
? ? ? ? ? ? /* if (getY.Count > 15)
? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ?getY.Dequeue();
? ? ? ? ? ? ?}
? ? ? ? ? ? ?else?
? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ?getY.Enqueue(y);
? ? ? ? ? ? ?}*/
? ? ? ? ? ? return y;
? ? ? ? }

? ? ? ? private double setY4()
? ? ? ? {
? ? ? ? ? ? double y0 = new Random().Next(100, 300);
? ? ? ? ? ? double y = y0 * 0.1;
? ? ? ? ? ? /* if (getY.Count > 15)
? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ?getY.Dequeue();
? ? ? ? ? ? ?}
? ? ? ? ? ? ?else?
? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ?getY.Enqueue(y);
? ? ? ? ? ? ?}*/
? ? ? ? ? ? return y;
? ? ? ? }

? ? ? ? //將坐標(biāo)點(diǎn)添加進(jìn)系列進(jìn)行繪圖
? ? ? ? private void paint()?
? ? ? ? {
? ? ? ? ? ? try
? ? ? ? ? ? {
? ? ? ? ? ? ? ? //series1
? ? ? ? ? ? ? ? if (chart1.Series[0].Points.Count > maxSize)?
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? chart1.Series[0].Points.RemoveAt(0);
? ? ? ? ? ? ? ? ? ? chart1.Series[0].Points.AddXY(setX(), setY1());
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? {?
? ? ? ? ? ? ? ? ? ? chart1.Series[0].Points.AddXY(setX(), setY1());
? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? //series2
? ? ? ? ? ? ? ? if (chart1.Series[1].Points.Count > maxSize)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? chart1.Series[1].Points.RemoveAt(0);
? ? ? ? ? ? ? ? ? ? chart1.Series[1].Points.AddXY(setX(), setY2());
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? chart1.Series[1].Points.AddXY(setX(), setY2());
? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? //series3
? ? ? ? ? ? ? ? if (chart1.Series[2].Points.Count > maxSize)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? chart1.Series[2].Points.RemoveAt(0);
? ? ? ? ? ? ? ? ? ? chart1.Series[2].Points.AddXY(setX(), setY3());
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? chart1.Series[2].Points.AddXY(setX(), setY3());
? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? //series4
? ? ? ? ? ? ? ? if (chart1.Series[3].Points.Count > maxSize)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? chart1.Series[3].Points.RemoveAt(0);
? ? ? ? ? ? ? ? ? ? chart1.Series[3].Points.AddXY(setX(), setY4());
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? chart1.Series[3].Points.AddXY(setX(), setY4());
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? catch
? ? ? ? ? ? { }
? ? ? ? ? ??
? ? ? ? }

? ? ? ??
? ? ? ? private void timer2_Tick(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? setX();
? ? ? ? ? ? setY1();
? ? ? ? ? ? setY2();
? ? ? ? ? ? setY3();
? ? ? ? ? ? setY4();
? ? ? ? ? ? paint(); ? ? ? ? ? ? ?//調(diào)用畫(huà)圖方法,顯示動(dòng)態(tài)折線(xiàn)圖
? ? ? ? }

? ? ? ? private void btn_start_Click(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? if (btn_start.Text.Equals("開(kāi)始"))
? ? ? ? ? ? {
? ? ? ? ? ? ? ? btn_start.Text = "停止";
? ? ? ? ? ? ? ? timer2.Enabled = true;
? ? ? ? ? ? }
? ? ? ? ? ? else
? ? ? ? ? ? {
? ? ? ? ? ? ? ? btn_start.Text = "開(kāi)始";
? ? ? ? ? ? ? ? timer2.Enabled = false;
? ? ? ? ? ? }
? ? ? ? }
? ? }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • c# Newtonsoft 六個(gè)值得使用的特性(下)

    c# Newtonsoft 六個(gè)值得使用的特性(下)

    這篇文章主要介紹了c# Newtonsoft 六個(gè)值得使用的特性,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • 雜談try-catch-finally異常處理

    雜談try-catch-finally異常處理

    這篇文章主要介紹了雜談try-catch-finally異常處理的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • C# 設(shè)計(jì)模式系列教程-狀態(tài)模式

    C# 設(shè)計(jì)模式系列教程-狀態(tài)模式

    狀態(tài)模式主要解決的是當(dāng)控制一個(gè)對(duì)象狀態(tài)轉(zhuǎn)換的條件表達(dá)式過(guò)于復(fù)雜時(shí)的情況。把狀態(tài)的判斷邏輯轉(zhuǎn)移到表示不同的一系列類(lèi)當(dāng)中,可以把復(fù)雜的邏輯判斷簡(jiǎn)單化。
    2016-06-06
  • C#簡(jiǎn)單實(shí)現(xiàn)SNMP的方法

    C#簡(jiǎn)單實(shí)現(xiàn)SNMP的方法

    這篇文章主要介紹了C#簡(jiǎn)單實(shí)現(xiàn)SNMP的方法,通過(guò)一個(gè)簡(jiǎn)單的自定義類(lèi)分析了C#實(shí)現(xiàn)SNMP的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • C#識(shí)別出圖片里的數(shù)字和字母

    C#識(shí)別出圖片里的數(shù)字和字母

    本文給大家分享的是C#識(shí)別出圖片里的數(shù)字和字母的代碼,主要是識(shí)別以前公司的軟件注冊(cè)碼截圖里的數(shù)字和字母,功能很簡(jiǎn)單,也存在很大的局限性,這里僅僅是分享,小伙伴們參考下。
    2015-03-03
  • C#多線(xiàn)程之線(xiàn)程同步

    C#多線(xiàn)程之線(xiàn)程同步

    這篇文章介紹了C#多線(xiàn)程之線(xiàn)程同步,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • C#實(shí)現(xiàn)實(shí)體類(lèi)和XML相互轉(zhuǎn)換

    C#實(shí)現(xiàn)實(shí)體類(lèi)和XML相互轉(zhuǎn)換

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)實(shí)體類(lèi)和XML相互轉(zhuǎn)換的資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 逐步講解快速排序算法及C#版的實(shí)現(xiàn)示例

    逐步講解快速排序算法及C#版的實(shí)現(xiàn)示例

    快速排序在時(shí)間復(fù)雜度同為O(N*logN)的幾種排序方法中效率較高,因而比較常用,接下來(lái)這里就來(lái)逐步講解快速排序算法及C#版的實(shí)現(xiàn)示例
    2016-06-06
  • C#通過(guò)WIN32 API實(shí)現(xiàn)嵌入程序窗體

    C#通過(guò)WIN32 API實(shí)現(xiàn)嵌入程序窗體

    這篇文章主要介紹了C#通過(guò)WIN32 API實(shí)現(xiàn)嵌入程序窗體的方法,涉及WIN32 API的調(diào)用及窗體的設(shè)計(jì),具有很好的借鑒價(jià)值,需要的朋友可以參考下
    2014-09-09
  • 介紹C# 泛型類(lèi)在使用中約束

    介紹C# 泛型類(lèi)在使用中約束

    這篇文章介紹了C# 泛型類(lèi)在使用中約束,有需要的朋友可以參考一下
    2013-09-09

最新評(píng)論