GDI+绘制,3万个点,我都计算出来了x,y坐标。
但是怎么样把这些坐标绘制成点,比较有效率?对于绘制耗时的问题,我一直不太会。我的方法
点用矩形替代,比如要一个2*2的点,就绘制个2*2的矩形
建立一个Rectangle的list,计算坐标,每计算好一个坐标后,建立对应的矩形,存入list。
计算完成后,把list转成数组
用Graphics.DrawRectangles一次性把所有矩形绘制出来。别人给了我一个方法,但是他是vc执行的,他是每计算一个坐标后,就画一根线,相当于Graphics.DrawLine画一个2长度的线,线宽2.不过我觉得这个执行3万次画线,应该比一次性画数组要慢吧。还有一个方法是,
内存里建一个2*2的位图,计算到每个坐标时,DrawImage,把位图画上去请问下,
以上3个方式,哪个执行效率最好?
GDI+对于要绘制量比较大的点时,有没有什么好的处理方式?

解决方案 »

  1.   

    用DrawRectangles怎么绘制都没有效率。如果只是点,知道坐标,不会直接修改位图值。
      

  2.   

    你是说用指针修改 计算坐标在位图中的对应点的像素的rgb值?
      

  3.   

    在winform中吗
    直接绘制30000个点肯定会使界面卡死   另开线程计算绘制出位图  在ui线程中将位图绘制在界面中
      

  4.   

    对了,我用fillrectangles函数绘制的话,碰到一个奇怪的现象,打印出来的画面是正常的,但是打印预览窗口中看见的内容不正常,看不见fillrectangles的内容。
      

  5.   

    直接操作指针改bitmap的颜色效率最高。