【发布时间】:2010-11-23 05:40:52
【问题描述】:
您好,我正在用 java 编写一个应用程序。在我的应用程序中,我需要一种方法将每个点连接到许多不同点之间的两个最近点(从一个点到它的两个最近点画一条线)。起初我创建了这个方法,以便将每个点连接到它最近的点:
public void connectingPoints()
{
ArrayList<Point> externals = new ArrayList<Point>();
for(int i = 0; i<externals.size(); i++)
{
Point point = externals.get(i);
Point minPoint = externals.get(i+1);
int minXDistance = minPoint.x-point.x;
int minYDistance = minPoint.y-point.y;
for(int j = 1; j<externals.size();i++)
{
if((externals.get(j+1).x-point.x<minXDistance)&&(externals.get(j+1).y-point.y<minYDistance))
{
minPoint = externals.get(j+1);
}
}
getGraphics().drawLine(point.x, point.y, minPoint.x, minPoint.y);
repaint();
}
}
}
但是这种方法根本不起作用。为什么?问题出在哪里?以及如何将一个点连接到它的 2 个最近点。
【问题讨论】:
-
当您说“不起作用”时,它会做什么?
-
我什至不明白这个问题。
-
当您应该在嵌套的 for 循环中增加 j 时,您似乎增加了 i