社区
C++ 语言
帖子详情
一个很简单的算法问题
XHWXHWXHWchuBuLai
2010-06-11 08:43:14
需要花一条曲线,曲线的点是实时采集到的数据。现在我的问题是,当数据快超过阈值时,需要图像能自动调节横纵坐标轴的范围,使曲线能够始终落在图谱区以内。
但是我又不知道怎么调整阈值最好呢?
我试了下我的算法,当前值xc>=坐标轴长度xend*80%时,就调整xend,--> xend*=1.2。
但这样做的效果比较差,坐标轴出现了小数了。而且调整的纵轴效果也不好,因为纵坐标有时候增长很快的情况下,就多次调整。不知道大家有什么好的算法呢?让轴刻度为整数,而且让曲线更美观些的范围?
...全文
139
8
打赏
收藏
一个很简单的算法问题
需要花一条曲线,曲线的点是实时采集到的数据。现在我的问题是,当数据快超过阈值时,需要图像能自动调节横纵坐标轴的范围,使曲线能够始终落在图谱区以内。 但是我又不知道怎么调整阈值最好呢? 我试了下我的算法,当前值xc>=坐标轴长度xend*80%时,就调整xend,--> xend*=1.2。 但这样做的效果比较差,坐标轴出现了小数了。而且调整的纵轴效果也不好,因为纵坐标有时候增长很快的情况下,就多次调整。不知道大家有什么好的算法呢?让轴刻度为整数,而且让曲线更美观些的范围?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
noahhu
2010-06-12
打赏
举报
回复
楼主自己的思路就没有什么问题,这种做法可以使曲线显示于图形之中,又可以保持图的边上不会有太大的空白。可能困扰楼主的只是如何将轴刻度间距取为整数而已。如果是这样不如用ceil函数和floor函数试试。前者是将变量向大值方向取整,而后者是向小值方向取整。
而真正想动态调整图形的显示范围的话,可能最好的办法就是记录当前图形中的极值,包含新输入点。然后根据最大值和最小值来动态更新坐标轴。坐标值的起始及刻度,均可以使用前面所述的两个函数获得与目标最为最接近的整数。具体使用哪个函数就要值本身的正负了。
gz_qmc
2010-06-12
打赏
举报
回复
一、如果没有必要建议你别这样做,最好让曲线自己滚动。
前面的最早的数据消失,需要时从数据库调数据来画历史曲线。
二、如果你一定要集中在同一画面显示,可以这样:
1、可以开辟缓冲区域,缓冲区域按实际的坐标画。(参考双缓冲解决闪屏资料)
2、按比例在窗口画坐标。
3、把缓冲内容按比例拷贝到窗口指定区域。
4、通知窗口重画
这样你不用考虑小数,整数的问题,只考虑比例尺就可以了
windsting
2010-06-12
打赏
举报
回复
晕倒,csdn用的是非等宽字体,都乱了,就那个意思,凑合看吧。
windsting
2010-06-12
打赏
举报
回复
我怎么觉得这不是个问题呢?关键问题在于,你的解法里面,如何以及怎样确定“坐标轴刻度”,
你可以在坐标轴的长度调整以后,修改“单位长度的表示”,比如,
你当前的x轴长a,单位长度用b表示,新数据使x轴的范围变成了原来的2倍,
这时候,你的图形就会相应的变窄,这时候,你只要等比例的对b同时缩小,
不就没问题了么????如果没看明白,看图或许有点帮助:
放缩前:
|
|---- ----
| ----
+---+---+---+---+->
| 4 8 12 16
|
放缩后:
|
|-- --
| -- --
+-+-+-+-+-+-+-+-+->
| 4 8 12 ... 32
|
不知道这样是不是能解决问题呢??
公共马甲0315
2010-06-11
打赏
举报
回复
[Quote=引用 3 楼 yys213 的回复:]
乘以2的方法调整好了,如果超过*0.9,就扩大坐标轴,如果低于0.45,就缩小坐标轴为原来的一半。
[/Quote]
强......,好方法呀。
圆圆木公
2010-06-11
打赏
举报
回复
乘以2的方法调整好了,如果超过*0.9,就扩大坐标轴,如果低于0.45,就缩小坐标轴为原来的一半。
liutengfeigo
2010-06-11
打赏
举报
回复
//。。。。无语~
z569362161
2010-06-11
打赏
举报
回复
我虽然不会,但真的希望高人给指点,我也想学习一下。
比直接要作业的强多了
VRP(车辆路径
问题
)的两种
简单
算法
VRP(车辆路径
问题
)的两种
简单
算法
VRP
问题
描述:假设在
一个
供求关系系统中,车辆从货源取货,配送到对应的若干配送点。车辆存在最大载货量,且配送可能有时间限制。需要合理安排取货时间,组织适当的行车路线,使...
几种常见的
简单
算法
几种常见的
简单
算法
二分查找
问题
描述具体实现欧几里得
算法
(辗转相除法)
问题
描述具体实现幂运算
问题
描述具体实现 首先祝大家1024程序员节快乐,容许我水一篇文章,这里主要介绍几种
简单
的
算法
,并结合具体事例看看...
算法
1.
算法
定义 ...如果
一个
算法
有缺陷,或不适合于某个
问题
,执行这个
算法
将不会解决这个
问题
。不同的
算法
可能用不同的时间、空间或效率来完成同样的任务。
一个
算法
的优劣可以用空间复杂度与时间复杂度来衡量。
KMP
算法
最浅显理解——一看就明白
KMP
算法
看懂了觉得特别
简单
,思路很
简单
,看不懂之前,查各种资料,看的稀里糊涂,即使网上最
简单
的解释,依然看的稀里糊涂。 我花了半天时间,争取用最短的篇幅大致搞明白这玩意到底是啥。 这里不扯概念,只讲...
如何使用
算法
解决
问题
文章目录如何使用
算法
解决
问题
算法
解决
问题
思路调度的
问题
投资
问题
...这里举
一个
例子: 调度的
问题
从这
问题
中,通过直觉感觉到耗时少的放到前面可以达到最优,这样是一种贪心的策略 然后,我们可以找到规律,...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章