首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# 波形显示,思路

2013-11-08 
c# 波形显示,在线等思路?功能:背景是一个网格图(和示波器一样),然后显示波形,但必须是网格不动,波形不断刷

c# 波形显示,在线等思路?
功能:背景是一个网格图(和示波器一样),然后显示波形,但必须是网格不动,波形不断刷新,我现在是网格和波形同时刷新,很不好看,求指教? C# 网格 绘图
[解决办法]
那你就不动网格就行了?
[解决办法]
自己绘制还是用控件的?
网格希望不动那你可以固定绘制比例尺和网格。
如果是说闪烁,可以用双缓冲。
可以看看
C#无闪烁绘图方法
[解决办法]
在Bitmap里使用Graphics画网格和曲线,每次都重绘这两个内容,绘完后输出到 myPicture.Image=myBitmap,循环这个过程就行了,我的程序按照这种方法,一点闪烁都没有
[解决办法]
http://code.msdn.microsoft.com/windowsdesktop/CSCpuUsage-f009d9c1
http://www.syncfusion.com/support/kb/4/Can%20I%20create%20a%20scrolling%20%20moving%20chart%20like%20the%20CPU%20History%20Chart%20in%20Windows%20Task%20Manager
[解决办法]
        //private void 画网格()
        //{
            //int 小时 = DateTime.Now.Hour;
            //int 秒 = DateTime.Now.Second;
            //int 分钟 = DateTime.Now.Minute;
            //Graphics 实例 = 曲线显示.CreateGraphics();
            ////实例.Clear(Color.White);
            //Pen 线条 = new Pen(Color.Green, 1);
            //Pen 线条1 = new Pen(Color.Orange, 1);
            //for (int 线 = 10; 线 < 210; 线 = 线 + 10)
            //{
            //    实例.DrawLine(线条, new Point(线 + 30, 10), new Point(线 + 30, 200));//竖线需X坐标=同
            //    实例.DrawLine(线条1, new Point(40, 线), new Point(230, 线));//横线需Y坐标=同
            //}

            //string[] 标注 = { "100", "90", "80", "70", "60", "50", "40", "30", "20", "10", "0", "-10", "-20", "-30", "-40", "-50", "-60", "-70", "-80", "-90", "-100" };
            //int y = 0; Font font = new System.Drawing.Font("Arial", 9, FontStyle.Regular);

            //for (int i = 0; i < 21; i++)
            //{ 实例.DrawString(标注[i].ToString(), font, Brushes.Red, 0, y); y = y + 10; }

            //PointF[] 弦线值 = new PointF[200], 弦线值1 = new PointF[180];

            //for (int i = 0; i < 弦线值.Length; i++)
            //{
            //    弦线值[i].X = 40 + i;//起始位置
            //    弦线值[i].Y = 220 / 2 * (1 - (float)0.8 * (float)Math.Sin(i * 2 * Math.PI / 33));
            //}//               轴位置                幅度
            //for (int i = 0; i < 弦线值1.Length; i++)
            //{
            //    弦线值1[i].X = 40 + i;//起始位置
            //    弦线值1[i].Y = 220 / 2 * (1 - (float)0.8 * (float)Math.Sin(i * 2 * Math.PI / 28));
            //}
            //实例.DrawLines(new Pen(SystemColors.WindowText), 弦线值);
            //实例.DrawLines(new Pen(SystemColors.WindowText), 弦线值1);


        //}
分成2个何其简单
        //private void 画网格()
        //{
            //Graphics 实例 = 曲线显示.CreateGraphics();
            ////实例.Clear(Color.White);
            //Pen 线条 = new Pen(Color.Green, 1);
            //Pen 线条1 = new Pen(Color.Orange, 1);
            //for (int 线 = 10; 线 < 210; 线 = 线 + 10)
            //{
            //    实例.DrawLine(线条, new Point(线 + 30, 10), new Point(线 + 30, 200));//竖线需X坐标=同
            //    实例.DrawLine(线条1, new Point(40, 线), new Point(230, 线));//横线需Y坐标=同
            //}
            //string[] 标注 = { "100", "90", "80", "70", "60", "50", "40", "30", "20", "10", "0", "-10", "-20", "-30", "-40", "-50", "-60", "-70", "-80", "-90", "-100" };
            //int y = 0; Font font = new System.Drawing.Font("Arial", 9, FontStyle.Regular);

            //for (int i = 0; i < 21; i++)
            //{ 实例.DrawString(标注[i].ToString(), font, Brushes.Red, 0, y); y = y + 10; }
        //}
        //private void 画网格2()
        //{
            //Graphics 实例 = 曲线显示.CreateGraphics();
            ////实例.Clear(Color.White);

            //PointF[] 弦线值 = new PointF[动态变量], 弦线值1 = new PointF[动态变量];

            //for (int i = 0; i < 弦线值.Length; i++)
            //{
            //    弦线值[i].X = 40 + i;//起始位置
            //    弦线值[i].Y = 220 / 2 * (1 - (float)0.8 * (float)Math.Sin(i * 2 * Math.PI / 33));
            //}//               轴位置                幅度
            //for (int i = 0; i < 弦线值1.Length; i++)
            //{
            //    弦线值1[i].X = 40 + i;//起始位置
            //    弦线值1[i].Y = 220 / 2 * (1 - (float)0.8 * (float)Math.Sin(i * 2 * Math.PI / 28));
            //}
            //实例.DrawLines(new Pen(SystemColors.WindowText), 弦线值);
            //实例.DrawLines(new Pen(SystemColors.WindowText), 弦线值1);
        //}

热点排行