模块化动态划线实现解读

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

题记

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

     
image.png

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

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

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

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

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

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

 image.png

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

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

image.png

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

image.png     

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

image.png


应用软件:VC++6.0。
源码下载地址:http://download.csdn.net/detail/wojiushiwo987/5200730


作者:铭毅天下
原文:https://blog.csdn.net/laoyang360/article/details/8738973
版权声明:本文为博主原创文章,转载请附上博文链接!

相关文章
|
1月前
|
JavaScript 编译器
TypeScript中类型守卫:缩小类型范围的艺术
【4月更文挑战第23天】TypeScript中的类型守卫是缩小类型范围的关键技术,它帮助我们在运行时确保值的精确类型,提升代码健壮性和可读性。类型守卫包括`typeof`(检查原始类型)、`instanceof`(检查类实例)和自定义类型守卫。通过这些方法,我们可以更好地处理联合类型、泛型和不同数据源,降低运行时错误,提高代码质量。
|
11月前
|
SQL IDE Java
如何高效编码? 使用有意义的命名
编码中随处可见命名。我们给变量、函数、参数、类和包命名;我们jar文件命名。我们命名,命名,不断命名,既然有怎么多命名要做,不妨就做好它。
codewarrior 中英文混乱问题
codewarrior 中英文混乱问题
79 0
codewarrior 中英文混乱问题
|
JavaScript
vue uniapp通用省市下拉选择器组件 布局样式可灵活根据ui变更 (区域 可根据数组嵌套的格式继续往下模仿即可)
vue uniapp通用省市下拉选择器组件 布局样式可灵活根据ui变更 (区域 可根据数组嵌套的格式继续往下模仿即可)
550 0
vue uniapp通用省市下拉选择器组件 布局样式可灵活根据ui变更 (区域 可根据数组嵌套的格式继续往下模仿即可)
|
JavaScript 前端开发
Vue实现无限级树形选择器(无第三方依赖)
想要在 Vue 中实现一个这样的无限级树形选择器其实并不难.
Vue实现无限级树形选择器(无第三方依赖)
vue3使用i18n实现国际化与动态切换语言
vue3使用i18n实现国际化与动态切换语言
vue3使用i18n实现国际化与动态切换语言
|
前端开发
React基础中的单一标签包裹的问题
React基础中的单一标签包裹的问题
React基础中的单一标签包裹的问题
js-正则表达式边界符和前瞻、后顾的使用-保证你看明白
js-正则表达式边界符和前瞻、后顾的使用-保证你看明白
|
存储
模块化动态划线实现解读
模块化动态划线实现解读 应用软件:VC++6.0。 源码下载地址:http://download.csdn.net/detail/wojiushiwo987/5200730 题记:在对数据的趋势描述方面莫过于将点存储下来描线。即如任务管理器中CPU使用率一样,一目了然就很直观看出使用的趋势。现在360管理软件里面有开始时间的变化趋势。其他也有类似的趋势划线软件功能的实现,很是直观!
103 0
模块化动态划线实现解读
|
前端开发
前端模块化之样式初始化
初始化样式,统一样式为常用模式。
322 0