繁体   English   中英

多个坐标之间的距离

[英]Distance between multiple coordinates

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

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

    公共双距离(圆测试)

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

你在这里小心翼翼地围绕对象方向,改变周围的东西,所以你有一个圆圈数组而不是一个整数数组:

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

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

(LN*D)/(N-1)

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM