これは宿題のために達成したいものです: ランダムに決定された各円の半径と位置で円を描画するプログラムを設計して実装します。円が他の円と重なっていない場合は、その円を黒で描きます。円が1つ以上の円と重なっている場合は、それをシアンで描画します。配列を使用して各円の表示を保存し、各クランクの色を決定します。中心点間の距離が半径の合計よりも小さい場合は、2つの円が重なります。ここでランダムな円を描画し、まず点を配列に格納する
は、私がこれまで持っているコードです:私が受け取ったアドバイスを取り、ステップによって、このステップを通過しようとした後
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.*;
import java.awt.event.*;
import java.math.*;
public class RandomCircles extends JPanel
{
private int[] sizeArray = new int [4]; // radius of each circle
private int[] xArray = new int [4]; //array to store x coordinates of circles
private int[] yArray = new int [4]; //array to store y coordinates of circles
public RandomCircles()
{
Random r = new Random();
for (int i = 0; i<xArray.length; i++){
//random numbers from 1 to 20;
xArray[i] = r.nextInt(200) + 1;
}
for (int i = 0; i<yArray.length; i++){
yArray[i] = r.nextInt(200) + 1;
}
for (int i = 0; i<sizeArray.length; i++){
sizeArray[i] = r.nextInt(100) +1;
}
setBackground (Color.white);
setPreferredSize (new Dimension(300, 200));
}
// Draws all of the circles stored in the array.
public void paintComponent (Graphics page)
{
super.paintComponent(page);
for (int i = 0 ;i<xArray.length; i++) //this is an iterator that draws the circles and checks for overlapping radii
{
for (math.sqrt((x1-x2)*((x1-x2))-((y1-y2)*(y1-y2));
{//math.sqrt((x1-x2)*(x1-x2)-(y1-y2)*(y1-y2)), go back and read chapter 7
page.fillOval(xArray[i], yArray[i], sizeArray[i], sizeArray[i]);
}
}
}
public static void main (String[] args)
{
JFrame frame = new JFrame ("Circles");
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add (new RandomCircles());
frame.pack();
frame.setVisible(true);
}
}
、私は進歩の多くを作りました。私は、円の重心を、その円の重なりを判断するための半径の合計と比較するプロジェクトの最後の部分に固執しています。私はそれらを比較するのにmath.sqrt関数を使うことができると思いますが、正しく実装する方法がわかりません。一度チェックする方法を見つけたら、それらが重なっていれば(ブール値が真)、シアンにそのサークルをペイントします。誰かが入力を持っているなら、私は本当に感謝しますが、私は理解しません、私はあまりにも多くの助けを求めるのは良くないと知っています。どうもありがとうございました。
これは宿題のポイントで、自分で仕事をすることです。 –
私はどのように進むのか分かりません。教科書の中で課題と関係があるものをすべて読んだら、教授に尋ねようとしたが、あなたはjavaについて何も知らない誰かを知らないのですか? – Josh
Rツリーを使って各円の交差点を検索することもできます。これがエントリーレベルのクラスであれば、あなたはそれを素朴に行い、他のサークルと交差しているかどうかを確認するためにサークルをペイントするたびにリスト全体を調べるのが最もよいでしょう。 –