Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

同心円の描き方

JAVA学習初心者で、躓いてしまいました。

赤と黄色の円を繰り返し半径70の円から半径を0.9倍しながら円を描く半径が2未満になったらWhile文を終了する。

記述すると円が2重、円が一つしか表示されない、円がずれる。などしてしまいます。

教えて下さい。
宜しくお願い致します。

6

回答

93734

閲覧

6件の回答

評価

0

具体的なコードを記載してください。

評価

0

回答頂き有難うございます。

コードですが、
赤と黄色の円を繰り返し半径50の円から半径を0.8倍しながら円を描き半径が2未満になれば終了する。ということでチャレンジしています。

しかし、黄色の円しか描けず苦心しております。
宜しくお願い致します。

public void paint(Graphics g){
int x = 100;                  // 円の中心のX座標 int y = 100;                  // 円の中心のY座標
int r = 50*2;             // 円の半径 (初期値)

while( r<=2 );{
r = r* 4/5;
x=x+r*1/5;
 y=y+r*1/5;

 g.setColor(Color.red);
 g.fillOval(x,y,r*2,r*2);

 if(r%4/5==0){

g.setColor(Color.yellow);
 g.fillOval(x,y,r*2,r*2);

            }


    }

    }
}

評価

0

たとえば、一行ごとにSystem.out.println()で変数を表示させることで、どこまで思い通りに動いていて、どこからダメなのかが分かる。
そうすると、どの行に問題がありそうかが分かる。
じっくりその行を見て、何が問題なのかを調べ、試し、確認する。
答えを聞こうとしちゃだめだ。

評価

0

「$」さんが言われている通り、System.out.println()で変数の値を確認しながらコードを記載するといいと思います。

whileの条件が、r<=2の間中、実行するになっていますので繰り返し処理は行われないと思います。

評価

0

それだけじゃないけどね;

おそらくまだJava自体に不慣れなのに、グラフィックという応用をやろうとしてるからだろうな。

評価

0

有難うございます。
学習します!!

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。