一个文件里有几千个直到上万个点,符号化显示这些点,线,面(都由点数据即坐标构成),第一次显示可能比较慢,在后来的拖动操作或者放大,缩小时,如何能让显示的速度加快,而不是每次操作后就要整个屏幕重绘半天,谢谢。

解决方案 »

  1.   

    SeainBlue你好,如果所有的数据是放在数据库中的话那又该怎么办呢
      

  2.   

    arccpp,你的数据如果在数据库中
    那就更好管理了,普通文件很难做到直接存取,或者说得通过计算之后才可以
    对于数据库来说,直接存取很容易了
    你可以把你的数据通过数据库分块标识出来
    可能不需要分别保存到不同的数据文件,但是可以加入一些分块的标志
    或者可以用查询过滤条件来分块
    然后保存下所有块之间的逻辑、位置关系
    在显示过程中动态调度,动态从数据库中按照不同数据块的过滤条件调入数据
      

  3.   

    你的每个对象应该都有它的虚拟坐标 在画图的时候,根据当前的比例尺和窗口大小,以及对应原点得到要绘制的虚拟矩形区域
    绘制的时候判断对象是否在虚拟矩形区域内,不再的就不绘制,这样速度很快
    另外,解决闪烁的办法就是现在内存DC中画好,然后BitBlt
      

  4.   

    pcitman 你好,你介绍的方法我很感兴趣,你知道在哪里可以找到这方面的例子程序吗xtuzi,你好,你所介绍的绘图方式好像要用到空间索引,是吧,那一般如何建立空间索引呢
      

  5.   

    我上面提到的跟你程序整体设计的架构有关系我还有一个方法,既然你不介意第一次绘制的速度(要以后的很快)
    你可以在第一次绘制的时候内存DC绘制比当前屏幕大的区域,用位图保存起来
    在漫游操作的时候,只需要用BitBlt把位图的一部分拷贝到屏幕上,这样太快
    了。