多个坐标之间的距离

时间:2012-10-24 22:23:42

标签: java distance geometry

我完全迷失了如何将坐标分类到数组中,并找到它们之间的距离。这是个问题:

  1. 创建一个名为“Circle”的新类,可用于创建自定义的圆形对象。您的课程应包括以下内容 - 请务必恰当地评论您的课程: 双半径, 双xPosition, 双yPosition,和 一种计算从一个圆的xPosition和yPosition到另一个圆的xPosition和yPosition的距离的方法。使用标准距离公式计算此值。出于此方法的目的,您只需计算从中心点到中心点的距离。这是一个方法标题,可以帮助您入门:

    public double distanceFrom(Circle test)

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

    提示用户输入多个圈子(即您要创建多少个圈子?) 接下来,要求用户输入每个圆的半径,xPosition和yPosition。将他们的输入存储在适当大小的圆圈阵列中。 最后,遍历您的数组并显示每个圆的距离信息。确保您不计算从给定圆回到自身的距离(即不需要计算圆#1和圆#1之间的距离) - 这是运行程序的示例。

  3. 这是我到目前为止所拥有的:

    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;
            }
        }
    }
    

2 个答案:

答案 0 :(得分:1)

你在这里改变对象的方向,改变周围的东西,这样你就有了一个圆圈阵列而不是一组整数:

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方法,你想比较你作为参数传递的圆,而不是你自己)

答案 1 :(得分:0)

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

给出

(L-N*D)/(N-1)

哪里: L 是数组从边到边的距离(不是到末端圆的中心点,而是到末端圆的边缘) N 是圈数 D 是圆的直径

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

如果你想找到中心点到中心点之间的距离,我相信你可以推导出它

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