社区
界面
帖子详情
MSCHART 控件,显示500万个数据点,如何显示
ThinkXi
2019-05-08 06:11:01
用mschart,微软自带的控件,做曲线图显示,一个波形有500万个数据点,怎么样能一次性显示出完整的波形图,用的是vc++,
目前用的put_RowCount设置列数,用setdata函数设置每一列对应的数据。
但是RowCount参数是short类型,500万超范围了,是不是mschart不能够实现,还是思路不对头,求指教,感谢!
...全文
830
13
打赏
收藏
MSCHART 控件,显示500万个数据点,如何显示
用mschart,微软自带的控件,做曲线图显示,一个波形有500万个数据点,怎么样能一次性显示出完整的波形图,用的是vc++, 目前用的put_RowCount设置列数,用setdata函数设置每一列对应的数据。 但是RowCount参数是short类型,500万超范围了,是不是mschart不能够实现,还是思路不对头,求指教,感谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ThinkXi
2019-05-12
打赏
举报
回复
多谢各位的回复,现在的思路和大家想的差不多,按一定的算法,提取一部分点来显示,这样应该是可以的。
再有又碰到一个新问题,mschart一条曲线中,想改表某个点的颜色,或者做个特殊标记,用了如下方法:
CVcPlot vcPlot = (CVcPlot)(m_ChartWaveForm.get_Plot());
CVcSeriesCollection VcSeriesCollection = vcPlot.get_SeriesCollection();
CVcSeries vcSeriesFast = VcSeriesCollection.get_Item(1);
CVcDataPoints vcDataPoints = vcSeriesFast.get_DataPoints();
CVcDataPoint vcDataPoint = vcDataPoints.get_Item(100);//执行到此处,异常,为什么必须填-1,-1怎么代表是哪个点,
CVcMarker vcMarker = vcDataPoint.get_Marker();
vcMarker.put_Style(1);
CVcBrush vcBrush = vcDataPoint.get_Brush();
CVcColor vcColor = vcBrush.get_FillColor();
vcColor.Set(255, 255, 0);
现在的问题是vcDataPoints.get_Item(100),这个函数,只有输入-1才不异常,怎么指定特定的点来设置颜色呢?-1表示什么意思。
baita96
2019-05-11
打赏
举报
回复
这个怎么样?
量子
2019-05-11
打赏
举报
回复
思路不对,500万个点没必要同时全部加载到空间里,一方面放不下,另一方面也没必要,因为你不可能同时把500万个数据点都显示出来,横轴分辨率没那么高,都堆在界面上。你可以自己做个算法,根据你显示的横轴范围,动态选择一部分数据显示。例如,时间轴范围要显示500万个数据的全貌,但屏幕上显示像素宽度只有1000个点,那么就每隔5000个点抽一个数据显示出来就够了,如果用户放大了曲线看局部比如2000个点的局部,再根据放大后的时间轴宽度,每隔一个数据抽一个点显示
sichuanwww
2019-05-10
打赏
举报
回复
500W还是有挑战的,试试Matlab
zgl7903
2019-05-09
打赏
举报
回复
每N点抽出其中的最大值和最小值, 这样既可加速刷新,有不失波形的特征点
大树学长
2019-05-09
打赏
举报
回复
合成的曲线记得加抗锯齿
大树学长
2019-05-09
打赏
举报
回复
建议按照像素画点,电脑屏幕无法精确显示500万个点,根据不同的屏幕分辨率来分多少个点合成一个像素的纵坐标这样,每个像素直接的横坐标是不变的,都是紧挨着的,然后将所有像素连接起来,
sevancheng
2019-05-09
打赏
举报
回复
翻页显示,一页只显示一部分
fly4free
2019-05-08
打赏
举报
回复
是缩略图还是啥?
500万个点,那个是很长的,屏幕宽一般才 1980,4K平会多一些
肯定一次看不下,要想看, 要嘛就缩放,具体算法叫啥名不知道,反正实际屏幕上的一个像素点,可能是很多数据的【重复点】
要吗就分段,给一个滚动条,移动到哪儿,就看哪部分的
画图的DC 应该无限大吧
ThinkXi
2019-05-08
打赏
举报
回复
多谢回复,现在项目要求要一次看到整个波形,您说的抽样显示,有个问题,就是有些点是剧烈变化的点,可能和上一个点数值差距很大,这样的话,抽样显示波形就不对了。
不知道其他的控件是否支持,还有个LabView的控件,心里也没底,并且改动也很大,愁啊,
xiaobaiqing1983
2019-05-08
打赏
举报
回复
1、建议将500W的的数据放置在多条曲线拼接显示,否则会申请很大的一段连续内存,绘图效率很差。 2、建议考虑是否要一次显示这个多点,能否抽样显示 3、建议考虑数据分批显示
ThinkXi
2019-05-08
打赏
举报
回复
你好,请问怎么优化啊,就是说500万数据点,没法实现吗
smwhotjay
2019-05-08
打赏
举报
回复
干爆软件的节奏。。肯定要数据优化。降低模型。
虚心像报表统计分析高手请教,接近200个商品的零售统计分析功能
首先技术我大概都懂,sql都会写,图形
控件
也会用,但是我还是做不出专业的,精美的,有深度的,客户喜欢的 统计分析效果。 我想达到的目的: 1. 到底做几个统计图?如何展现给客户才符合...
我在CSDN参与的3000个帖子
2:100分急求,随机输出十个小写字母,但是,要求这十个字母不相同 3:求Sn=a+aa+aaa+…+aaa…a(n个a)之值 4:数组题 望高手帮忙! 5:呵呵,来推荐一下我的网站,本站提供大量当今流行的免费的音乐和免费电影,...
关于一个用VB编写的PING工具的问题
我在互联网上找到一个用VB编写的程序,是PING一个计算机的IP是否能通的工具,我改了改,使用ADO重
数据
库中循环读取IP地址,并将测试后的状态写入到
数据
库,作完后运行是可以测试,但是速度太慢了,每循环测试一个IP...
基础
请问怎么得到一个函数的执行时间,单位毫秒!如何调试asp组件呀。用vc++调试编制的组件怎样画一个箭头?高分请教如何限制程序运行的方法?求助:通过编程DirectX抓屏------>masterz:再麻烦你一下,谢谢熟悉RichEdit...
海尔智能电视刷机
数据
U49A5 机编DH1W80A0305 务必确认机编一致 强制刷机 整机USB升级主程序
务必确认机身编号与文件名机编一致,如不一致,请勿下载 机身编号一般在机子背面的贴纸上 升级方法: 1、下载
数据
,压缩包解压,将“Haier638Upgrade.bin”文件拷贝到U盘根目录下(U盘要求使用FAT32格式,建议4G-8G的品牌U盘,刷机成功率会高) 2、电视关机拔下电源,插入U盘,按住机身按键板上的“菜单”键不放,插电开机,直到LED灯开始闪表示升级正在进行,升级成功后机器会自动重起。 3、重启之后,重新交流上电,升级完成。 注意: 1、升级到结束,大约需要8-30分钟,中途绝对不能断电 2、升级重启第一次进入系统,请等完全正常进入开机桌面之后,才能拨下U盘
界面
15,980
社区成员
115,900
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章