2 tangzongshuji tangzongshuji 于 2014.12.01 10:20 提问

类似AutoCAD软件提高重绘速度

我正在开发一款类似AutocAD的软件,但是在元素比较多的情况下,元素重绘的速度很慢。
因为是矢量图,一旦鼠标滚动或者放缩,所有的图元必须重新计算新的窗口坐标,并且在新的位置重绘出来。
为了提高速度,我使用了空间索引技术,可以排除一些不在可视区域内的元素,并且当元素很小的时候,可以忽略,不显示,但是即使是这样,元素很多且都需要显示的情况下,重绘的速度还是很慢。
有什么方法可以提高重绘的速度吗?
有谁知道AutoCAD是怎么处理的吗?AutoCAD在元素很多的情况下,依然很流畅。

2个回答

devmiao
devmiao   Ds   Rxr 2014.12.01 10:39

利用CPU空闲时间对视图做缓冲。因为用户经常要做的是上下左右平移和缩小。所以可以将这些地方先渲染好,然后再直接载入。

tangzongshuji
tangzongshuji 图纸打开以后,首次渲染后,当然会建立缓存数据,问题是,以后即使从这些缓存数据重新计算和绘制,速度也很慢。对视图做缓冲,我们无法预知用户会平移到哪里,以及放缩到多大,所以就无法做缓冲,问题的症结在于重绘速度太慢。
大约 3 年之前 回复
zhouxuguang236
zhouxuguang236   2014.12.07 18:19

有几个策略可以采用,第一,绘制时抽希;第二,绘制后做位图缓存,第三,可以采用空间索引

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!