象WINDOWS启动时那样的流动的渐变色条子在VB里怎样实现?

解决方案 »

  1.   

    有两种方法可以实现,一种是靠算出来的,就是找一个算法,比如SIN函数什么的,通过SIN中角度的递加来映射一个变化的渐变色。
    还有一种更简单,就是实现做好一个渐变色的长条画片,在程序中按一定方向依次截取并贴到对象上,WINDOWS就是使用这种方法。
      

  2.   

    我建议楼主用第一种方法:找一个算法,比如SIN函数什么的,通过SIN中角度的递加来映射一个变化的渐变色。
    第二中方法不应是程序员干的。
      

  3.   

    在VB种算法太慢
    除非用API直接画图
    第二中如果要求速度也必须使用API直接画屏
      

  4.   

    楼上zifeng911(紫风)把VB想像地太不堪了,其实无论那种方法在VB中都可以流畅运行的。
    按照第一种方法作的话也有两种方法可以实现,A:最傻的,就是按照计算好的颜色从左到右画竖直线,或从右到左也一样,这个办法是最慢的。B:改良的方法,只在第一次画的时候从左到右画一遍,接下来只要将目前的画面整体左移一个像素,在新画面的最右面画上最新的一条竖直线就可以了,移动整个画面的方法很多,可以使用API:BITBLT,也可以使用PICTURE控件和窗体自带的PAINTPICTURE方法,速度均快,如果你的机器还不算太古老的话,可以得到上百帧的刷新率。
    第二种方法更简单,如同上述的方法B,不同的只是从一个已经做好的图像中将不同位置的画面赋值过来而已,因为连一条直线都不用画,所以速度是最快的。