星を描くプログラムで、以下のようなものを作成したのですが、
このプログラムに一工夫入れて、回転するごとに(各辺ごとに)
青→赤→黄→紫→オレンジ→ピンク→青→…
などと色を変えていきたいのですが、どうすればいいのかがよくわかりませんした。
もしお分かりいただけるのであれば、ご指摘お願いします。
public class TurtleStar extends TurtleRemoCon { private int speed, length; private int movedLength; // これまで動いた距離 /** tが (x0, y0) から, 初期角度degの方向に,speedの速さで移動し, 長さがlenの星を描く */ public TurtleStar(Turtle t, int x0, int y0, int speed, int len, int deg) { super(t); this.speed = speed; this.length = len; movedLength = 0; t.move(x0, y0); t.penDown(); t.rotate(deg); // deg 回転する } /** tが (x0, y0) から, speedの速さで移動し,長さがlenの星を描く */ public TurtleStar(Turtle t, int x0, int y0, int speed, int len) { this(t, x0, y0, speed, len, 88); // 左下向きに進む } /** 1ステップ描く */ public void step() { // speed分だけ進める t.go(speed); // これまで動いた長さにspeedを足す movedLength += speed; // 一辺の長さ(length)以上動いてたら,向きを変える if (movedLength >= length) { t.rotate(144); movedLength = 0; // リセット } } /** テスト用mainメソッド */ public static void main(String[] args) { Turtle t1 = new Turtle(); t1.setColor(java.awt.Color.MAGENTA); TurtleStar star1 = new TurtleStar(t1, 280, 180, 18, 108); while (true) { star1.step(); } } }
あなたの回答
tips
プレビュー