社区
图表区
帖子详情
难,怎样使用算法过滤图形的重叠点?
labthink
2011-12-16 09:39:37
我用MSChart,画一个折线图,现在的问题是:折线图中的数据太多(有的好几万个点),所以折线图上的点显示在屏幕上比较粗,我认为有很多重叠点造成的(可能数据不同,但是都集在一个像素中),现在想解决的是,怎么让数据少一些,折线图看上去还是一样的,谁能提供一个算法规则来过滤重叠数据?或者别的思路也可以,只要能够减少点数,并保持折线图的形状
...全文
127
16
打赏
收藏
难,怎样使用算法过滤图形的重叠点?
我用MSChart,画一个折线图,现在的问题是:折线图中的数据太多(有的好几万个点),所以折线图上的点显示在屏幕上比较粗,我认为有很多重叠点造成的(可能数据不同,但是都集在一个像素中),现在想解决的是,怎么让数据少一些,折线图看上去还是一样的,谁能提供一个算法规则来过滤重叠数据?或者别的思路也可以,只要能够减少点数,并保持折线图的形状
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
labthink
2011-12-16
打赏
举报
回复
[Quote=引用 8 楼 qwertxp 的回复:]
你在500px宽的图形上根据1000个点和根据100个构成的曲线图有多大区别?就算每个点只用1px,你也最多需要500个点,其它的都是废的。
确保每个坐标的点是唯一的,重复点没有意义。根据时间精度来取值,画一天的曲线图,根据需求考虑精确到每小时一个点,或者每半小时一个点,每10分钟一个点。精确到分钟,精确到秒是没有意义的,曲线图看的就是个趋势,看详细记录应该出报表。
[/Quote]是啊,哥们,不同的项目有不同的要求,当然这也和业务有关,有些就是需要精确到每一个点的。我这里也是需要精确的,我只是想要最前面的那个呈现肉眼看上去一样的效果
wonder_123
2011-12-16
打赏
举报
回复
[Quote=引用 8 楼 qwertxp 的回复:]
你在500px宽的图形上根据1000个点和根据100个构成的曲线图有多大区别?就算每个点只用1px,你也最多需要500个点,其它的都是废的。
确保每个坐标的点是唯一的,重复点没有意义。根据时间精度来取值,画一天的曲线图,根据需求考虑精确到每小时一个点,或者每半小时一个点,每10分钟一个点。精确到分钟,精确到秒是没有意义的,曲线图看的就是个趋势,看详细记录应该出报表。
[/Quote]
我的是用作数据分析的,要进行缩放获取每个具体点的信息的……
qwertxp
2011-12-16
打赏
举报
回复
你在500px宽的图形上根据1000个点和根据100个构成的曲线图有多大区别?就算每个点只用1px,你也最多需要500个点,其它的都是废的。
确保每个坐标的点是唯一的,重复点没有意义。根据时间精度来取值,画一天的曲线图,根据需求考虑精确到每小时一个点,或者每半小时一个点,每10分钟一个点。精确到分钟,精确到秒是没有意义的,曲线图看的就是个趋势,看详细记录应该出报表。
wonder_123
2011-12-16
打赏
举报
回复
恩啊。如果它内部是根据你全部导入的数据来确定范围,然后再进行绘制,并提供具体点的像素坐标,那也就没有意义了。从效率上看,teechart比 mschart高一些,3W左右的数据在teechart还是可以用的,mschart就估计够呛了。渲染画面越好的,绘图也越慢。
labthink
2011-12-16
打赏
举报
回复
[Quote=引用 5 楼 wonder_123 的回复:]
就是在绘图前,能不能先通过坐标转化得到该点将要显示的像素坐标? 如果没用提供,那就有点为难。
[/Quote]这个我还不太清楚,思路我倒是理解了,就是把同一像素点的数据只保留一份
wonder_123
2011-12-16
打赏
举报
回复
就是在绘图前,能不能先通过坐标转化得到该点将要显示的像素坐标? 如果没用提供,那就有点为难。
wonder_123
2011-12-16
打赏
举报
回复
这个我绘制的是 50W 到 100W 个点,但是是自己完全使用GDI+绘图。 如果没有使用反锯齿等渲染方式的话,GDI+图形绘制的基础都是基于像素,也就是整型坐标系。
我因为是自己定义的控件:就是在传入数据前就对数据进行了处理,把像素点重合的点踢掉了,这样绘图效率得以大大提升。不知道MSChart 在导出数据前能否得到数据的像素值? 只能提供这个思路,你再看看。
labthink
2011-12-16
打赏
举报
回复
那个重复点,作为数据来讲,基本上是不重复的,只是因为屏幕宽度有限,而数据点很多,导致可能有些点的大小我们眼睛可能看上去都一样
labthink
2011-12-16
打赏
举报
回复
自己顶
快溜
2011-12-16
打赏
举报
回复
chart控件绑定数据源的时候过滤掉重复点行不行
wonder_123
2011-12-16
打赏
举报
回复
回复了一次看不见?就再回复一次吧:
我定义控件时使用的思路:获取所有的数据-> 确定边界 -> 计算每个点对应的像素坐标 -> 绘制线条。
踢去点就是在确定边界并计算像素坐标时。
对于封装好的控件而言,一般都是传入点然后就将曲线绘制出来了,第三个过程不知道MSChart是否开放给了用户? 如果没有开放,直接在内部转化完了,就无法在绘制前得到像素坐标。
3w -10w 个点用 teechart 可以一试,用 mschart 太慢了。
wonder_123
2011-12-16
打赏
举报
回复
从原理上看,控件的内部实现也肯定是先获取数据,然后才会确定控件的逻辑值边界,再确定每个点的像素坐标的。
在自定义控件时采用的思路则为:先获取所有数据用于确定逻辑边界,然后再计算每个点的像素坐标,踢去重叠的点,再绘制非重合点序列。
估计这种封装好的控件不会提供这种功能。如果太慢,3W-10W 左右用teechart看看吧
labthink
2011-12-16
打赏
举报
回复
[Quote=引用 4 楼 wonder_123 的回复:]
这个我绘制的是 50W 到 100W 个点,但是是自己完全使用GDI+绘图。 如果没有使用反锯齿等渲染方式的话,GDI+图形绘制的基础都是基于像素,也就是整型坐标系。
我因为是自己定义的控件:就是在传入数据前就对数据进行了处理,把像素点重合的点踢掉了,这样绘图效率得以大大提升。不知道MSChart 在导出数据前能否得到数据的像素值? 只能提供这个思路,你再看看。
[/Quote],看了一下,好像没找到得到像素点的方法
labthink
2011-12-16
打赏
举报
回复
坐等知道的朋友
xiaosun830910
2011-12-16
打赏
举报
回复
晕,没人再说几句了吗
计算机
图形
算法
演示
本资源“计算机
图形
算法
演示”显然是一份用于教学或自我学习的材料,通过实例展示了计算机
图形
学中的关键
算法
。下面将详细介绍几个重要的计算机
图形
算法
及其应用场景。 1. **光栅化
算法
**:这是将几何模型转换为...
计算机
图形
学 简单绘图
9. **
图形
API**:在实际编程中,我们通常
使用
图形
库或API,如OpenGL、DirectX、 Vulkan等,它们提供了底层的
图形
绘制功能,简化了程序员的工作。 10. **
算法
应用**:计算机
图形
学中有很多经典
算法
,如Bresenham
算法
...
直线
重叠
去除
2. **初始筛选**:利用边界框检测等快速方法对直线段进行初步筛选,
过滤
掉明显不
重叠
的部分。 3. **详细比对**:对于剩余的直线段,进行更加细致的坐标比对,以识别出真正的
重叠
部分。 4. **
重叠
部分合并**:将检测...
图形
学试验
7. **
图形
算法
**:可能涵盖Bresenham线
算法
、Dijkstra最短路径
算法
、 delaunay三角剖分等经典
图形
算法
,这些
算法
在
图形
生成和处理中起到关键作用。 8. **深度缓冲和剪裁**:深度缓冲用于解决多边形
重叠
时的绘制问题...
一种基于人工智能的
重叠
不规则非封闭体检测方法研究.pdf
这些
算法
有助于在复杂图纸中分离出
重叠
的不规则非封闭对象,即使在对象间存在相互
重叠
的情况下,也能准确分离出各个完整的对象。具体的实现方式包括了以下步骤:首先是输入工程图纸并进行二值化处理;然后利用腐蚀和...
图表区
4,820
社区成员
14,134
社区内容
发帖
与我相关
我的任务
图表区
.NET技术 图表区
复制链接
扫一扫
分享
社区描述
.NET技术 图表区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章