0

大きな円の中にさまざまな色合いの緑の小さな円を描いて「茂み」のように見せようとしていますが、すべての小さな円をの形にする方法がわかりません。大きな円。私はそれを長方形の中に入れる方法しか理解できません。

public void paintComponent(Graphics g)
   {
      super.paintComponent(g);

      for(int i = 0; i < 1000; i++){
         int redV = (int) ((Math.random() * 100) + 27);
         g.setColor(new Color(red, red + 31, red - 15));

         int x = (int) ((Math.random() * 400) + 150);
         int y = (int) ((Math.random() * 500) + 200);

         g.fillOval(x, y, 50, 50);
      }
   }
4

3 に答える 3

3

ここでいくつかのジオメトリを作成し、ランダムに生成されたx座標とy座標が円内にあるかどうかを確認する必要があると思います。あなたが言ったように、長方形内は簡単です(x>左、x + 50 <右、y>上、y + 50 <下をチェックするだけなので)、しかし円の場合は円の方程式を使用する必要があります実際にを実行する前に、(x、y)と(x + 50、y + 50)がその中にあることを確認してくださいfillOval()

Ellipse2Dによって実装されるJava2DShape.contains ()を使用することで、簡単な方法があると思います。したがって、基本的には、大円のインスタンスまたは大円のインスタンスを作成し、座標を生成するたびに呼び出して、それらが描画される前にその中にあることを確認します。Ellipse2D.DoubleEllipse2D.Floatcontains()

于 2012-11-25T02:44:23.633 に答える
0

色を少し変更し、x、y、幅、高さを少し増減して、古い円の中に入れることができると思います。新しい楕円は古い楕円の上にペイントする必要があります。

于 2012-11-25T02:34:50.780 に答える
0

大きな円の中心となる点を選択し、それに関連する大きな円を描画します(たとえば、java.awt.geom.Ellipse2Dを使用)。

次に、大きな円の中心とその半径を使用して、他の小さな円も円周の内側に配置します。

于 2015-01-18T12:29:11.060 に答える