Mhmmm, wie sich das nennt weiss ich nicht, aber ich denke Skalieren ist das auch nicht. Müsstest du da nicht einen Faktor nehmen und jeden Punkt um diesen Faktor vom Zentrum aus verschieben ?dass jeder Punkt sich um 5px nach außen bewegt
for (int i = 0; i < window.lstModelLD_RealCoordinate.size(); i++) {
double xM = 0, yM = 0, xD, yD, x1, y1, x2, y2, xP, yP;
xM = middleLD.getX();
yM = middleLD.getY();
x1 = window.lstModelLD_RealCoordinate.getElementAt(i).getX();
y1 = window.lstModelLD_RealCoordinate.getElementAt(i).getY();
// Mittelpunkt subtrahieren
xD = x1 - xM;
yD = y1 - yM;
// Prozent der Skalierung
xP = movingDistance * 100 / xD;
yP = movingDistance * 100 / yD;
// neuer Punkt
x2 = (xP * 0.01 * x1) + xM;
y2 = (yP * 0.01 * y1) + yM;
window.lstModelLD_RealCoordinate.set(i, new Point2D.Double(x2, y2));
}
Du solltest dir doch mal ein Geometriebuch der Oberstufe hernehmen und gucken welche Abbildung du denn nun willst. Ich dachte du willst alle Punkte um den gleichen Betrag verschieben ?? Dann bleibt die Form des Polygons natürlich nicht erhalten. Deshalb meine Frage nach zentrischer Streckung ! Aber jetzt rechnest du doch mit Prozent, also einem Faktor, und das wäre ja eine zentrische Streckung.Aber die Punkte überschneiden sich teilweise