0

我完全不知道如何将坐标排序成一个数组,并找到它们之间的距离。这是问题:

  1. 创建一个名为“Circle”的新类,可用于创建自定义的圆形对象。你的类应该包括以下内容——一定要对你的类进行适当的注释:双半径、双 xPosition、双 yPosition,以及计算从一个圆的 xPosition 和 yPosition 到另一个圆的 xPosition 和 yPosition 的距离的方法。使用标准距离公式计算此值。出于此方法的目的,您只需要计算从中心点到中心点的距离。这是一个帮助您入门的方法标头:

    public double distanceFrom(循环测试)

  2. 创建一个名为“Assignment06b”的新类。在本课程中执行以下操作:

    提示用户输入多个圆(即您要创建多少个圆?)接下来,要求用户输入每个圆的半径、xPosition 和 yPosition。将他们的输入存储在适当大小的 Circles 数组中。最后,遍历您的数组并显示每个圆的距离信息。确保您不计算给定圆与自身之间的距离(即无需计算圆#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

您在这里对面向对象小心翼翼,改变周围的事物,以便您拥有一个圆数组而不是整数数组:

Circle[] arrayCircles = new Circle [amount];

此外,您没有在您的 circle 类中设置任何值,您可能想要解决这个问题:

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 回答
0

我目前正在使用 CAD 软件,我需要在方形网格/阵列中找到圆(孔)之间的距离,我发现圆(边到边)之间的距离由下式给出

(LN*D)/(N-1)

其中: L是阵列从边缘到边缘的距离(不是到端圆的中心点,而是到端圆的边缘) N是圆的数量 D是圆的直径

如果从中心点到中心点测量 L (L+DN*D)/(N-1)

如果您正在寻找中心点到中心点之间的距离,我相信您可以得出它

有点晚了,但希望这对其他人有帮助!

于 2021-04-14T11:47:32.637 回答