繁体   English   中英

Java中的X和Y坐标循环

[英]X and Y coordinate loop in java

我试图做一个for循环,它将遍历9组不同的点,并在我的主驱动程序中与另外两个类一起执行它们。 我现在还很困,无法弄清楚如何在for循环再次运行之前设置第二个(pointC2)。

坐标为:

X:{{86.92, 70.93, 97.74, 30.90, 51.66, 0.83, 55.91, 32.92, 65.26, 83.90},

Y:{2.47, 27.81, 34.36, 35.14, 31.70,21.77, 66.62, 75.23, 72.53, 4.710}};  

(86.92, 2.47) = (x1,y1)

(70.93, 27.81) = (x2,y2)

我尝试将其设置为多维循环,但无法获得正确的计数器。

分配的基础是将笛卡尔坐标转换为极坐标,然后找到从(x1,y1)(x2,y2)(x3,y3)等的距离。

这是我需要在for循环之后执行的代码:

      //calls point1 from Cartesian
        Cartesian pointC1 = new Cartesian(x1, y1);

      //calls point2 from Cartesian
        Cartesian pointC2 = new Cartesian(x2, y2);

        double answer1 = Cartesian.distance(pointC1, pointC2);

      //prints out point1 and point2
        System.out.println("Point 1 = " + pointC2 + " Point 2 = " + pointC1);

      //prints out sum 
        System.out.println("Distance: " + answer1);

然后又去了,但是这次是从(x2,y2)(x3, y3)

我可以告诉您一个过程而不是编码,但是您必须先研究arrays

限定,

array X: {{86.92, 70.93, 97.74, 30.90, 51.66, 0.83, 55.91, 32.92, 65.26, 83.90},

array Y: {2.47, 27.81, 34.36, 35.14, 31.70, 21.77, 66.62, 75.23, 72.53, 4.710}};

然后,

begin for loop from i = 0 to array size -1
x1 = array X [i];
y1 = array Y [i];
// rest of your code goes here
// ...
end for loop
double[] x = {86.92, 70.93, 97.74, 30.90, 51.66, 0.83, 55.91, 32.92, 65.26, 83.90};
double[] y = {2.47, 27.81, 34.36, 35.14, 31.70, 21.77, 66.62, 75.23, 72.53, 4.710};
Cartesian[] pointC = new Cartesian[Math.min(x.length, y.length)];
double[] distance  = new double[pointC.length - 1];
for(int i = 0; i < pointC.length; i++){
    pointC[i] = new Cartesian(x[i], y[i]);
}
for(int i = 0; i < distance.length; i++){
    distance[i] = Cartesian.distance(pointC[i], pointC[i+1]);
}

暂无
暂无

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

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