我用GradientPaint 对一个直的矩形设置渐变颜色,效果是矩形中间到矩形宽的渐变.
现在想对一个弯曲的矩形,设置渐变应该怎样做呢?比如90度弯曲

解决方案 »

  1.   

    我用GradientPaint 对一个直的矩形设置渐变颜色,效果是矩形中间到矩形宽的渐变.
    现在想对一个弯曲的矩形,设置渐变应该怎样做呢?比如90度弯曲跟对直的矩形的渐变是一样的设置.
    因为渐变是线性渐变的, 或者你可以看一下Photoshop的效果, 对一个矩形的渐变和对一个圆, 不规则图形的渐变都是一样的.
      

  2.   

    现在问题是如果弯曲矩形要设置像正常矩形那样矩形中间像外渐变颜色的话,
    那两个Point怎样设置?
      

  3.   

    你弯曲的矩形不是一个Graphics2D图形吧
    一般两个Rectangle一个Arc
    这样的话分别施行由中间到宽的渐变策略
    g_2d.setPaint(gradient);
    g_2d.fill(figure);
      

  4.   

    回复楼上的:
         我那个弯曲矩形是两个封闭弧减切成一个弯曲矩形。没用到Arc
      

  5.   

    你是在画布上实现么?如果可以的话可以用双缓冲机制,把线画好以后到用的时候显示出来,效果就是渐变的。当然,还要加上进程,控制变化的速度。addpaintlistener(.....)
      

  6.   

    http://topic.csdn.net/u/20080414/14/fe1a6c94-57a3-47a4-85d6-a602ad4b632b.html?seed=275036570
    我在这个帖子里回复了
      

  7.   

    g_2d.setPaint(gradient);
    g_2d.fill(figure);
      

  8.   

    在JDK1.6里面有2个对象,LinearGradientPaint和RadialGradientPaint具体 操作可以看JDK1.6的API