要做一个画图的东东,想把那个画布写成一个控件,如何做到画形的放大?放大成点阵图
有网格的那种。要求速度快,还有放大后还在要上面作画的。
不要闪烁有什么好的方法?

解决方案 »

  1.   

    肯定会有一些 闪 吧?? 我怎么也去不了!
    Image.Parent.DoubleBuffer := True;
      

  2.   

    Canvas.StretchDraw(Rect,Griphic)
      

  3.   

    gdi作动画不可能不闪烁,用DELPHI+OPENGL做,可能不会闪烁。
      

  4.   

    会闪??????????? 连续做不同的绘制操作才会闪!
    同一个地方连续做同一个绘制操作都不可能闪。
    自己管理好刷新和绘制工作。不可能闪。
    用GDI 简陋,缓慢是真的。但是闪烁的话,就绝对是你自己操作不当造成的!
      

  5.   

    画些线线框框还成,这可是动画,GDI做动画会连续吗,会不闪吗???
      

  6.   

    设置变量Scale,表示放大或缩小比例
    然后根据位置信息重新绘制(当scale变化了)
      

  7.   

    闪烁和用GDI也有关系???引入缓存位图即可搞定需求,你不要将要显示的东西直接用GDI绘制,而是绘制到一张缓存位图里,然后覆盖成员函数Paint,完成该缓存位图的绘制.改变内容也是改变缓存位图然后再直接调用Paint完成重绘,这么简单的处理下放大缩小都很容易做到,因为显示的内容和逻辑上的内容是分离的.而且根本就不存在所谓的闪烁,出现闪烁完全是个人原因,和用GDI没有任何关系