社区
图形处理/算法
帖子详情
Windows下 提高绘图速度的方法
Tinary3v0
2011-11-30 01:28:59
加精
由于我需要在1024* 768这样大的窗口里面,进行每秒中上百次的绘图,现在采用GDI与GDI+混合的方式,当然是为了达到一定的效果。
现在绘图速度很慢,但是由于时间上的要求,这个问题必须解决。
不知道大家有什么好方法没?
我在考虑是不是在平面里面用GDI或者GDI+不合适。
如果仅仅为了仿真平面效果,采用OpenGL其他的三维方式能不能实现?
那个效率相对来说比较高?
另外,有没有让自己的程序直接占用绝大部分CPU资源的方法(开机只运行这一个程序)?
...全文
6261
193
打赏
收藏
Windows下 提高绘图速度的方法
由于我需要在1024* 768这样大的窗口里面,进行每秒中上百次的绘图,现在采用GDI与GDI+混合的方式,当然是为了达到一定的效果。 现在绘图速度很慢,但是由于时间上的要求,这个问题必须解决。 不知道大家有什么好方法没? 我在考虑是不是在平面里面用GDI或者GDI+不合适。 如果仅仅为了仿真平面效果,采用OpenGL其他的三维方式能不能实现? 那个效率相对来说比较高? 另外,有没有让自己的程序直接占用绝大部分CPU资源的方法(开机只运行这一个程序)?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
193 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
j-k
2013-09-04
打赏
举报
回复
我以前用mirror driver几乎可以达到每秒100帧了,完全没必要,dx也试过,介乎gdi和mirror driver之间。
熬夜程序猴
2013-04-01
打赏
举报
回复
工控里 仿真示波器 这么快的刷新速度还远远不够
儿女情长
2012-12-28
打赏
举报
回复
mark
xqhrs232
2012-10-25
打赏
举报
回复
[Quote=引用 151 楼 的回复:]
引用 116 楼 wallescai 的回复:
使用GDI或者GDI+基本上都没有可能达到楼主的要求的.
否则也不会出现DX和OPENGL之类的东西了.
不过楼主的要求似乎有点不合理, 一般的液晶显示器才60赫兹, 也就是说一秒钟所能显示的图片是60幅, 你那多出来的几十帧要如何显示出来呢?
需要声明的是:1)使用GDI在合适的算法下达到100FPS完全可能;实例为证,见我的Bl……
[/Quote]
希望你的BLOG对我目前遇到的问题有所帮助!!!
绿绿的阳光
2012-09-29
打赏
举报
回复
通过回帖发现了 好多小牛,两个大牛,一个老牛
计算机软件行业果然是个无底洞,感觉花一辈子时间都学不完
clever101
2012-03-21
打赏
举报
回复
参考:
提高二维矢量绘图效率之一般做法
boywang
2012-01-19
打赏
举报
回复
说到底还是直接内存直接计算相关的数据,然后再显示来的快。
panshoup
2011-12-12
打赏
举报
回复
等楼主的代码。。。。。。。。
xumei_
2011-12-11
打赏
举报
回复
晕 楼主看电影的时候有跳帧的感觉吗? 根本不需要这么高的刷新频率,请检查一下你的代码是不是有问题吧
wwweeeiii_mahu
2011-12-10
打赏
举报
回复
用OpenGL效率较高,但注意最好不要和GDI混着用,如果程序界面绘图既有OpenGL又有GDI,一方面刷新时GDI闪烁的利害,另外,由于OpenGL绘图时独占DC,很可能导致GDI获取DC失败从而导致异常。另外,50毫秒刷一次效果就非常不错了。最近几年一直用OpenGL,感觉效率可以。
hhloong
2011-12-10
打赏
举报
回复
我觉得用遍历的方法是最好实现的,哈哈
jonnywoods
2011-12-09
打赏
举报
回复
是吧????????????????
full1005
2011-12-09
打赏
举报
回复
谢谢楼主的奉献
米娅
2011-12-09
打赏
举报
回复
脏矩形技术+双缓冲
xyqqtt21
2011-12-09
打赏
举报
回复
我一直在为这个问题头痛了很久,不过这不失为一种很好的方法
z3410218746
2011-12-08
打赏
举报
回复
刷新率那么高,有什么好处啊。
taoxu0823
2011-12-08
打赏
举报
回复
不错啊
asight
2011-12-07
打赏
举报
回复
楼主真有前瞻性,考虑到了120hz的显示器吧,gdi的2d贴图速度绝对超过这个
wsk91188
2011-12-07
打赏
举报
回复
谢谢了。看看
lanzhengpeng2
2011-12-07
打赏
举报
回复
[Quote=引用 132 楼 tinary3v0 的回复:]
谢谢大家的回答,问题问得不是很好,说刷新100次其实也不是随便说的,
可以这样说,一个圆形要从屏幕(1024*768)的左边移动到右边,限时为1秒,在移动过程中
需要对768*768大小的区域进行刷新(刷新过程要对这个区域贴图3次左右)
移动过程要求不能看出有明显的不连续,就是平时说的“不能有跳帧的感觉”
我现在时GDI和GDI+同时使用,已经使用了双缓存,程序现在运行基本上就是按照代码……
[/Quote]
并不完全需要提高刷新率来提升移动的平滑性.觉得不平滑的原因很很多.
首先要排除帧数率不是很平稳的影响,一般做法是绘制时间小于显示设备刷新的时间间隔的倍数,然后利用显示设备的刷新间隔非常稳定的特性来提供固定的时间间隔.
其次,要严格按照下一次显示出来的时间计算图像的像素位置.这个位置就不能是整数了,必须是浮点数.这样就存在亚像素的问题.需要对亚像素进行平滑处理.而这些处理又涉及到显示设备的Gamma值是否调整好了,是否跟你的图形使用的Gamma值匹配等问题.
如果图像存在缩放,这个平滑就更难做.
加载更多回复(124)
曲线绘制小软件(改进版)
修正了内存泄露的问题,优化了部分曲线绘制效率
掌握
Windows
API:
提高
VB
绘图
效率
本文详细介绍了如何通过
Windows
API函数提升VB(Visual Basic)程序中的
绘图
性能。通过声明和使用API函数,比如GetTickCount、CreatePen、SelectObject和DeleteObject,可以优化图形绘制
速度
。此外,文章还展示了如何在实际应用中创建自定义
绘图
函数和管理图形对象的创建与销毁,以
提高
绘图
效率。
TeeChart
绘图
控件 - 之三 -
提高
绘图
的效率
TeeChart是个很强大的控件,其
绘图
能力之强,其他控件难以比拟,但是有个问题就是他的
绘图
速度
,其实TeeChart
绘图
速度
还是很快的,只是大家一直都没正确运用其功能所以导致
绘图
速度
慢的假象。 下面说说影响
绘图
速度
的两个主要因素 1、当点数特别多时不需要绘出全部点(性能提升不大) TeeChart
绘图
控件 - 之一文章里已经讲过,可以设置只绘出部分点。设置
方法
如图:
【亲测免费】 C中使用双缓冲及BitBlt
提高
GDI+
绘图
效率的示例程序
C#中使用双缓冲及BitBlt
提高
GDI+
绘图
效率的示例程序 去发现同类优质开源项目:https://gitcode.com/ 简介 本资源文件提供了一个C#示例程序,展示了如何利用GDI+在
Windows
Form中绘制60*60个圆点,并通过三种不同的
绘图
方法
来对比它们的帧速和提速效果。开发环境为Visual Studio 2008。 示例内容 该示例程序主要包含以下三种
绘图
方法
: 直接绘制...
chatgpt赋能python:Python画笔
速度
怎么调快?
Matplotlib是一个Python 2D
绘图
库,它可以将数据可视化,并提供各种
绘图
选项。它是在NumPy库的基础上创建的,与Python的交互性非常好,并且具有与MATLAB相似的
绘图
界面。在Python中,使用matplotlib库进行数据可视化是非常常见的,在绘制复杂图形时,有时候画笔
速度
可能会比较慢,这时候我们可以通过使用交互式渲染器来
提高
绘图
速度
。本文介绍了TkAgg和QtAgg渲染器的使用
方法
,并且还向我们介绍了如何设置默认渲染器。
图形处理/算法
19,469
社区成员
50,678
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章