[英]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.