ShapeRendererの線のメソッド(Vector2 first、Vector2 second)を介して接続するためのポイントを取得する方法を探しています。そこで私は、イメージとコードを助けて説明します。最後の点を除いて最も近い点を見つけるLibGDX Java
Vector2型のリストがあります。次の最も近い頂点を見つけて最初の点を除外する必要があります。ここに私が意味するイメージがあります。私はイメージのループの反復にラベルを付けました。
第一の繰り返し。)それは最も近い点を見つけます。
2回目の繰り返し)最初の点が近いと判断されますが、3番目の点が選択されています。これは中核的な問題です。私は、第1のポイントがより近いものであっても、第2のポイントが第3のポイントを見つけることを確認する必要があります。
これは私がこれをやろうとしたコードです。
private void cleanVertices(Array<Vector2> verts){
newVerts = new Array<Vector2>();
Vector2 tmpKey, tmpClose = null;
tmpKey = verts.get(0);
for(int i = 0; i < verts.size; i++){
for(int k = 0; k < (verts.size - 1); k++){
if(k == i)
continue;
//Distance formula
double dist = MathFactory.distance(verts.get(i), verts.get(k));
if(MathFactory.distance(verts.get(i), verts.get(k + 1)) < dist){
tmpClose = verts.get(k + 1);
}else
tmpClose = verts.get(i);
}
tmpKey = tmpClose;
newVerts.add(tmpClose);
}
}'
これは私が必要とするものではなく、x軸に最も近い点を接続するように見えます。私は必死にこれで助けが必要です。ありがとう!