绘图慢如何解决(300分)

  • 主题发起人 主题发起人 manjel
  • 开始时间 开始时间
M

manjel

Unregistered / Unconfirmed
GUEST, unregistred user!
我们公司的GIS是自己开发。绘图用的是GDI函数
重绘时因为图形元素比较多所以显得很慢。

我想请问是否是跳过GDI重新写这些底层的绘图函数。
还是用的 DirectX 或者说是用别的什么算法来减少图形元素.
 
将所有元素绘在一个位图上,然后Draw在显示用的Canvas上可能会快点儿。
楼主什么公司,俺对开发GIS蛮有兴趣的[:)]
 
现在就是这么做的。但是还是慢。
我们公司只是一般。
 
1.矢量图的显示,gdi是最快的;
2.图形的显示可以优化的东西比较多: 例如窗口裁剪就很重要, 显示窗口外的内容就不要绘制了;
3. 显示技术上可以使用类似memmorybitmap方案, 再使用bitBlt操作, 效果会好很多;
 
嗯。
你说的这两个办法我们这里面都有用到.
可是要绘制的图形实在太多。仍然是慢.

我在想。有一些图形会被另一个在前面的图形遮盖住。
这样底下的图就不用绘制.
但是要实现这个算法可难了。
 
用directx可以解决吧,游戏的图形应该不比你的少吧
 
多的话少绘点就是了,绘多了人也看不过来,如果比例尺小,比如全国地图上,
你不可能把一个镇的公路画出来。
 
这种东西感觉如果图元超过5000以上,使用GDI的话肯定会慢,怎么的也快不了,DX不建议使用,它对三维支持较好,但对二维的相对就差一些。
建议对于这个还是局部画的好,不用全都一次性画出来,这样对资源的损耗也会降低。。。
 
非常感谢大家这么热心.

我地装载一个省的地图时感觉特别的慢。的确是如上面的朋友说的。
每个图层都有他们的显示比例。不在显示比例下就不会重绘。
但是有一些比例下图形元素也确实是太多了。至少是十万。
实在不知道怎么整.回头我看看裁剪区能不能再
 
FastLib
一套著名的免费图像处理库,支持8位和24位的位图,最大的特点就是速度奇快,缺点是代码可读性较差。
很有参考价值,建议参考一下
 
嗯。谢谢了。我想试试GDI+里面的区域和Path尽量的减少绘图.
 

Similar threads

回复
0
查看
861
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
911
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部