用C#绘制实时现金网

作者: admin 分类: 公司介绍 发布时间: 2018-03-27 10:32

我们家常常需求在事实论文中绘制其说得中肯一部分实时最高纪录图片。,比如,公司眼前的耗水量。、电流音频在电流i时显示。,在我们家最熟习的派遣管理人中有如此的任何人效能,用来表现应用容易CPU的频率,我新近任何人情人公开地结尾了任何人同类的的效能图,用现金网来实时表现其说得中肯一部分事实最高纪录,视觉抽象,活受罪病号迎将。
不外鉴于某个账目,我不克不及共享事实论文说得中肯密码并与您共享。,独自地任何人复杂的完成可以被模仿。,心不在焉过逾优化组合的密码,因而有很多参加需求优化组合。,抱有希望的理由有兴趣的情人放本人。。

为了容易搬运和周旋多样,因而将绘制现金网的效能独立封装成任何人类,外面的最高纪录是完整模仿的。,程度同等级的说得中肯每个像素疏密由任何人点把持。,横向是个随机造成的数(事实功绩中这应当出生于我们家的实时最高纪录按比率计当作来的),显示窗体中用到了任何人线状物来时机掌握绘制实时曲线。

事实的密码列举如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;

namespace RealtimeCurve
{
    /// 
    /// 阐明:实时图像造成类,在这种情况下,程度同等级的说得中肯每个像素都有任何人把持点。
    /// 把持点可以在事实功绩中增加,比如,每5点与把持点
    /// 这种挤入可能性更事实
    /// 作者:周公
    /// 日期:2008-07-21
    /// 首发地址:
    /// 
    public class RealTimeImageMaker
    {
        private int width;//要造成的现金网的宽度
        private int height;//要造成的现金网的阁下
        private Point[] pointList;//用来绘制现金网的中心点,移交将这些点衔接起来即通行现金网
        private Random random = new (随机);/用于造成随机数字
        private Bitmap 图像;/ /画画的电流
        private Color 镶嵌/图片的镶嵌色;
        private Color 远景致;/ /远景图片
        /// 
        /// 图片的阁下
        /// 
        public int Height
        {
            get { return height; }
            set { height = value; }
        }
	
        /// 
        /// 任何人图像的宽度。
        /// 
        public int Width
        {
            get { return width; }
            set { width = value; }
        }
        /// 
        /// 证明职务,指定的造成的现金网的宽度和阁下
        /// 
        /// 要造成的现金网的宽度
        /// 要造成的现金网的阁下
        public RealTimeImageMaker(int width, int 阁下):同样(宽度),height,)
        {
            
        }
        /// 
        /// 证明职务,指定的造成的现金网的宽度、阁下,镶嵌色和远景致
        /// 
        /// 要造成的现金网的宽度
        /// 要造成的现金网的阁下
        /// 现金网镶嵌色
        /// 现金网远景致
        public RealTimeImageMaker(int width, int height, Color backColor, Color 远景致)
        {
            this.width = width;
            this.height = height;
            this.backColor = backColor;
            this.foreColor = foreColor;
            pointList = new 点[宽度]
            Point tempPoint;
            在设定初值曲线上点的同等级的
            for (int i = 0; i < width; i++)
            {

                tempPoint = new Point();
                //曲线的横同等级的沿x轴移交递增,在横向位置上每个像素都有任何人点
                tempPoint.X = i;
                //曲线上每个点的纵同等级的随机造成,但保证在显示区域之内
                tempPoint.Y = random.Next() % height;
                pointList[i] = tempPoint;
            }
        }
        /// 
        /// 获取容易移交衔接曲线上每个点绘制成的曲线
        /// 
        /// 
        public Image GetCurrentCurve()
        {
            //currentImage = (new Rectangle(1, 0, width - 1, height), );
            currentImage = new Bitmap(width, height);
            Point p;
            //将容易定位现金网的同等级的点前移,并且将横同等级的减1,
            //如此的做的效果相当于移除容易第任何人点
            for (int i = 0; i < width-1; i++)
            {
                p = pointList[i + 1];
                pointList[i] = new Point();
            }
            Point tempPoint = new Point();
            //新造成现金网定位点的最后任何人点的同等级的
            tempPoint.X = width;
            //曲线上每个点的纵同等级的随机造成,但保证在显示区域之内
            tempPoint.Y = random.Next() % height;
            //在最后再添加任何人新同等级的点
            pointList[width-1]=tempPoint;
            Graphics g = (currentImage);
            (镶嵌)
            //绘制现金网
            (new Pen(远景致), pointList);
            ();
            return currentImage;
        }
    }
}

窗体的键密码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace RealtimeCurve
{
    /// 
    /// 阐明:显示实时现金网的窗体
    /// 作者:周公
    /// 日期:2008-07-21
    /// 首发地址:
    /// 
    public partial class FormRealTime : Form
    {
        Thread thread;
        RealTimeImageMaker rti;
        Color backColor = 指定的绘制现金网的镶嵌色
        public FormRealTime()
        {
            InitializeComponent();
            rti = new RealTimeImageMaker(Width, Height, backColor, );
            thread = new 线状物(新 ThreadStart(Run));
            ();
        }

        private void Run()
        {
            while (真的)
            {
                Image image = ();
                Graphics g = CreateGraphics();
                用指定的的镶嵌色卸下图像上的容易窗体。
                (镶嵌)
                (图片, 0, 0);
                ();
                使新鲜一次
                (1000);
            }
        }

        private void FormRealTime_FormClosing(object sender, FormClosingEventArgs e)
        {
            挂线状物表格前打烊
            ();
        }
    }
}

终极运转比分截图顺序:

所其中的一部分密码下载。

更多资讯,Please pay attention to my WeChat subscription number:


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

标签云