0

座標を配列に並べ替えて、それらの間の距離を見つける方法が完全にわかりません。これは質問です:

  1. カスタマイズされた円オブジェクトを作成するために使用できる「Circle」という名前の新しいクラスを作成します。クラスには次のものを含める必要があります。クラスに適切なコメントを付けてください。この値を計算するには、標準の距離式を使用します。この方法では、中心点から中心点までの距離を計算するだけで済みます。開始するためのメソッド ヘッダーを次に示します。

    public double distanceFrom(サークルテスト)

  2. 「Assignment06b」という名前の新しいクラスを作成します。このクラスで次のことを行います。

    ユーザーにいくつかの円を入力するように求めます (つまり、いくつの円を作成しますか?) 次に、ユーザーに各円の半径、xPosition、および yPosition を入力するように求めます。入力を適切なサイズの円の配列に格納します。最後に、配列を繰り返し処理し、各円の距離情報を表示します。与えられた円からそれ自体までの距離を計算しないようにしてください (つまり、円 #1 と円 #1 の間の距離を計算する必要はありません)。プログラムの実行例を次に示します。

これが私がこれまでに持っているものです:

import java.util.Scanner;

public class Assignment06b 
{
    public static void main(String[] args) 
    {
        Scanner input = new Scanner(System.in); 
        System.out.print("How many circles do you want to create?:");
        int amount = input.nextInt();


        int[] arrayX = new int [amount];
        int[] arrayY = new int [amount];


        int counter = 0;
        for (counter = 0; counter < amount; counter++)
        {
            System.out.println("Enter info for Circle #" + (counter + 1));
            System.out.print("Radius: ");
            double width = input.nextDouble();

            System.out.print("X Position: ");
            arrayX[counter] = input.nextInt();

            System.out.print("Y Position:");
            arrayY[counter] = input.nextInt();
        }

    }

    class Circle 
    {
        double radius;
        double xPosition;
        double yPosition; 

        Circle(double radius, double xPosition, double yPosition)
        {

        }

        public double distanceFrom(Circle test)
        {
            double equation = (xPosition-xPosition)*(xPosition-xPosition) + (yPosition-yPosition)*(yPosition-yPosition);
            double answer = Math.pow(equation, 0.5);
            return answer;
        }
    }
}
4

2 に答える 2

1

あなたはここでオブジェクト指向の周りにつま先立ちしています.intの配列ではなく円の配列を持つように物事を変えてください:

Circle[] arrayCircles = new Circle [amount];

また、サークル クラスに値を設定していないため、おそらく修正する必要があります。

Circle(double radius, double xPosition, double yPosition)
{
     this.radius = radius;
     this.xPosition = xPosition;
     this.yPosition = yPosition; 
}

次に、次のようにサークルをコレクションに追加できます。

arrayCirles[0] = new Circle(myRadius, myXPosition, myYPosition);

distanceFrom メソッド呼び出しを次のように呼び出します。

//Obviously do this in a loop of some kind and make sure they exist first
arrayCircles[0].distanceFrom(arrayCircles[1]);

うまくいけば、残りは自分で理解できます

(また、distanceFrom メソッドをもう一度見てください。自分自身ではなく、パラメーターとして渡された円を比較したい)

于 2012-10-24T22:42:44.070 に答える