模块化动态划线实现解读

模块化动态划线实现解读

       应用软件:VC++6.0。

       源码下载地址:http://download.csdn.net/detail/wojiushiwo987/5200730

       题记:在对数据的趋势描述方面莫过于将点存储下来描线。即如任务管理器中CPU使用率一样,一目了然就很直观看出使用的趋势。现在360管理软件里面有开始时间的变化趋势。其他也有类似的趋势划线软件功能的实现,很是直观!

     

 

       项目的需要,我们也需要类似的划线趋势统计模块来统计比如时间随着计数增加的变化趋势。

       这里,为了简化而又包含所需功能。特进行模块化测试。

       步骤1):需要知道横轴、纵轴各是多少。横轴、纵轴之间的关系?

       这里为了简化起见,特设定:横轴为次数,可通过计时器,隔给定时间其计数+1;纵轴代表随机值。横轴与纵轴的关系就是:1个横轴次数对应一个纵轴点值。

       步骤2):设计生成不重复随机数的函数,可将随机值存入给定大小的数组中。

       步骤3):设定划线区域,为了保证划线能连在一起,需要重绘,即需要在OnPaint()里面书写函数。下图GraphTest为我们设定的绘图区域。

      

       步骤4):直观起见,为了保证画图的直观性,特需要划X、Y轴。此处就需要知道GraphTest客户区域的坐标即左侧(left,top),右侧(right,bottom)。并注意预留一小部分的区域用于写标尺值。

       步骤5):标尺的设定。主要需要在刚才设定的长度下,设计横轴、纵轴点的个数。比如我们需要如下:0,10,20,30,40,50共6个点,6个点只需要5个相等的段就能隔开。这点在程序设计时需要万分小心。要不易导致分段过大或过小,不易于描点。

      

       步骤6):设计定时器,设定时间间隔,每隔开固定的时间间隔随机值变化,可通过以下的方式,验证不重复随机值的正确性。(可先跑通10个点,以验证程序的正确性)。为后续的描点、划线作准备!

      

 

       步骤7):描点划线。此时需要考虑重绘。即需要知道横轴次数、纵轴值大小。更重要的是为了保证描点的正确性,需要知道一个点所在横轴或纵轴小比例尺的大小,注意边界的情况。一个循环就可保证前一个点与后一个点以致所有点连起来。再加上定时器的作用就能确保画出如下图的动态连线图。



原文地址:https://www.cnblogs.com/javawebsoa/p/2990613.html