繁体   English   中英

访问一维双精度数组中的(X,Y)坐标,其中一个元素为X,下一个元素为Y?

[英]Accessing (X, Y) coordinates in a one-dimensional double array with one element being X and the next being Y?

我有一个存储X和Y坐标的一维双精度数组。

元素0将是第一个X,元素1将是对应的Y。

元素2将是第二个X,依此类推。

当前这是我的代码,但是我想知道是否还有另一种方法,因为这种方法给我带来了一些问题。 坐标双精度数组已被填充。

for(int i = 0; i < coordinates.length; i+=2)
{
    double x = coordinates[i];
    double y = coordinates[i + 1]
}

我的教授说,他要求我们为此作业使用一维数组。 如果没有其他方法,我可能可以解决问题,然后采用上述方法,但是我只是想知道是否还有另一种方法可以做到这一点。

使用这些坐标,我必须绘制一条折线。 这是我用来绘制折线的代码。

Polyline shape = new Polyline();

for(double coord : coordinates)
{
    shape.getPoints().addAll(coord);
}
shape.setStrokeWidth(3);

return shape;

这是与所有给定坐标一起发生的事情的图像。 http://i.imgur.com/sjJWmPJ.png

那多余的线让我感到困扰。

编辑:谢谢大家的帮助。 问题是我的双精度数组的大小为500,而我并没有全部使用它,所以大多数值都是0。我一直跟踪自己拥有多少坐标,并基于该条件而不是基于for循环条件。坐标数组的长度。

不确定如何将其标记为已解决。

public static void main(String [] args){

    int[] coordinates = new int[10];
    int[] xArray = new int[10];
    int[] yArray = new int[10];

    for(int j = 0; j < coordinates.length; j++){
        coordinates[j] = (int)(Math.random()*100);
        System.out.println(coordinates[j]);
    }
    System.out.println();

    for(int i = 0; i < coordinates.length; i+=2)
    {
        xArray[i] = coordinates[i];
        yArray[i] = coordinates[i + 1];
        System.out.println("x" + Integer.toString(i) + ": " + xArray[i]);
        System.out.println("y" + Integer.toString(i) + ": " + yArray[i]);
    }

}

我是新手,所以我不知道会不会有什么帮助,但是问题是您是否还有其他方法可以做到。 这样一来,便可以在内存中为每个坐标指定一个特定的位置,而在您的for循环中,它会覆盖x和y。 我不知道你的情况如何,所以我只给我随机数。

http://www.java2s.com/Tutorials/Java/JavaFX/0080__JavaFX_Polygon_Polyline.htm

令人惊讶的是该方法只需要双数组

所以你不需要使用循环

    Polyline shape = new Polyline();
    shape.getPoints().addAll(coordinates);
    shape.setStrokeWidth(3);

    return shape;

还尝试打印您的getPoints()值,这是任何.clear方法吗? 也许当您初始化对象时,point(0,0)首先会自动添加广告

看起来好像多余的线来自点(0,0)。 我对Java绘图工具不是很熟悉,但是似乎(0,0)是初始化“铅笔”位置的位置。

我之前仅使用Java绘图工具几次,但我似乎还记得您曾经使用过一些“提笔”的方法-否则,您到处都会画线。 那可能是造成多余线路的原因吗? 您将必须使用铅笔,移至第一点,放下铅笔,然后开始画图以解决问题。

暂无
暂无

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

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