【问题标题】:setting colours for various shapes with java用java设置各种形状的颜色
【发布时间】:2013-10-09 09:43:26
【问题描述】:

我已经制作了一堆彼此内部的三角形,我正在尝试设置颜色,以便每个三角形都是随机颜色..我该怎么做?我试过了

g2.setColor(new Color(COLOUR,COLOUR,COLOUR)); 

COLOUR=(int)(Math.random()*256) 

然后我填充了三角形,但所有三角形最终都变成了相同的颜色......

       for ( int i=0 ; i<triangle.size() ; i++) {
            Triangle tri
            tri=triangle.get(i);
            g2.setColor(new Color(COLOR,COLOR,COLOR));
            tri.draw(g2);
      }

三角形确实创建了我想要的东西,嵌套三角形,只是无法正确着色。

【问题讨论】:

  • 请贴出代码,以便我们实际参考

标签: java shapes


【解决方案1】:

在绘制每个三角形之前,您需要随机化颜色。如果您想要灰色以外的颜色,您还需要分别初始化颜色的每个组件(红色、绿色和蓝色)。

 int redColor,greenColor,blueColor;
 for ( int i=0 ; i<triangle.size() ; i++) {
        Triangle tri;
        tri=triangle.get(i);
        redColor=(int)(Math.random()*255);
        greenColor=(int)(Math.random()*255);
        blueColor=(int)(Math.random()*255);
        g2.setColor(new Color(redColor,greenColor,blueColor));
        tri.draw(g2);
 }    

希望这有助于说明问题所在。

【讨论】:

  • 我在这里设置了我的 COLOR 常量和表达式,作为一个全局常量,所以它给出了统一的颜色...我现在的问题是我只有黑色、白色和灰色阴影...
  • @user:我已经更新了我的答案,我没有意识到你想要灰色以外的颜色。
【解决方案2】:

每次绘制三角形都需要设置新的颜色,如下:

g2d.setColor(aColor);
g2d.drawPolygon(); // triangle 
g2d.setColor(bColor);
g2d.drawPolygon(); // triangle 

【讨论】:

  • 有一个大三角形,然后在其中有一个较小的三角形,然后在该三角形内有一个较小的三角形,持续约 10 个三角形。所以每个“嵌套”三角形应该是不同的颜色,但是当我做 g2.setColor(new Color(COLOR,COLOR,COLOR));我如何给它们上色?
  • 是的,那么?如果您在绘制新三角形之前使用 setColor(newColor) 为图形 g2d 设置颜色,则每个嵌套三角形将具有不同的颜色,如我在代码中所示。
  • @user:您每次也需要随机化 COLOR(见我的回答)
  • 在设置颜色之前输入您的COLOUR=(int)(Math.random()*256)。将COLOUR=(int)(Math.random()*256) 放在g2.setColor(new Color(COLOR,COLOR,COLOR)) 行之前;你很高兴
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-11
  • 1970-01-01
相关资源
最近更新 更多