模様を変える

EventRandom5.javaの作成例

3つのdrawRdmを用意してもいいのですが、'r', 'g', 'b' を引数にしてdrawRdmはひとつにしました。

nextColor()を使わずに次のようにするとこも可能です。

ファイル名 EventRandom5.java の一部

public void drawRdm(char rgb) {
    for(int i=0; 10>i; i++){
        //nextColor();
        int r=0;
        int g=0;
        int b=0;
        if (rgb=='r'){
              r = (int)(256*Math.random());
        }
        if (rgb=='g'){
              g = (int)(256*Math.random());
        }
        if (rgb=='b'){
              b = (int)(256*Math.random());
        }
        c = new Color(r,g,b);

        bfg.setColor(c);
        int x = (int)(400*Math.random());
        int y = (int)(300*Math.random());
        int h = (int)(50*Math.random()+5);
        bfg.fillOval(x-h/2,y-h/2,h,h);
    }
}

また、あくまでnextColor()で色を設定するのだと考えるとchar rgbをnextColor()にさらに渡すこともできます。

ファイル名 EventRandom5.java の一部

public void drawRdm(char rgb) {
    for(int i=0; 10>i; i++){
        nextColor(rgb);
        bfg.setColor(c);
        int x = (int)(400*Math.random());
        int y = (int)(300*Math.random());
        int h = (int)(50*Math.random()+5);
        bfg.fillOval(x-h/2,y-h/2,h,h);
    }
}

この場合、nextColor にもchar rgbが必要です.

ファイル名 EventRandom5.java の一部

public void nextColor(char rgb){
    int r=0;
    int g=0;
    int b=0;
    if (rgb=='r'){
          r = (int)(256*Math.random());
    }
    if (rgb=='g'){
          g = (int)(256*Math.random());
    }
    if (rgb=='b'){
          b = (int)(256*Math.random());
    }
    c = new Color(r,g,b);
}

nextColorの内容を変化させると色の変化の様子も変わります。

ファイル名 EventRandom5.java の一部

public void nextColor(char rgb){
    int r=0;
    int g=0;
    int b=0;
    if (rgb=='r'){
        r = (int)(256*Math.random());
        g = (int)(r*Math.random()/2);
        b = (int)(r*Math.random()/2);
     }
     if (rgb=='g'){
        g = (int)(256*Math.random());
         b = (int)(g*Math.random()/2);
         r = (int)(g*Math.random()/2);
     }
     if (rgb=='b'){
         b = (int)(256*Math.random());
         r = (int)(b*Math.random()/2);
         g = (int)(b*Math.random()/2);
     }
     c = new Color(r,g,b);
}

drawRdmのバリエーション

drawRdmを変えてみます。

ファイル名 EventRandom6.java になるかもしれない一部

public void drawRdm(char rgb) {
    int xx = (int)(400*Math.random());
    int yy = (int)(300*Math.random());
    for(int i=0; 10>i; i++){
        nextColor(rgb);
        bfg.setColor(c);
        int x = (int)(xx+100*Math.random());
        int y = (int)(yy+100*Math.random());
        int h = (int)(50*Math.random()+5);
        bfg.fillOval(x-h/2,y-h/2,h,h);
    }
}

課題

drawRdmやnextColorを変えてユニークな模様をかきなさい。

ファイル名 EventRandom6.java

もくじ

聖愛高等学校
http://www.seiai.ed.jp/
Last Modified