こんにちは、私はjavaでアプリケーションを書いています。私のアプリケーションでは、ポイントを2つの最も近いポイントに接続する方法が必要です(ポイントから2つの最も近いポイントまで直線を描きます)。最初に、この方法を作成して、各点を最も近い点に接続しました。異なるポイント間の2つの最も近いポイントにポイントを接続します
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つの最も近いポイントに接続することができますか?
「動作しない」と言うとき、それは何をしますか? – DJClayworth
私はその質問を理解していません。 –
ネストされたforループでjをインクリメントするときにインクリメントするように見えます。 –