Polygon vergrößern

Fohnbit

Top Contributor
Hallo,

ich halte die Koordinaten eines geschlossenes Polygons in einer Arraylist.
Nach meinem Verständnis muss ich das Zentrum ermitteln und dann prüfen auf welche Seite ich die Punkte verschieben muss.
Gibts es da eventuell einer fertige Methode?

Danke
 

Fohnbit

Top Contributor
Hallo,

Wenn ich um 5px vergrößern möchte, das jeder Punkt sich um 5px nach Außen bewegt, ausgehend vom Zentrum.
Skalieren ist die richtige Bezeichnung?
 

Fohnbit

Top Contributor
Hallo,

so, denn Mittelpunkt habe ich vom Polygon, aber wie berechne ich den neuen Punkt?
Mittelpunkt:
xM, yM
alter Polygonpunkt:
x1, y1
neuer Polygonpunkt (soll um 10px größer werden):
x2,y2

Wie berechne ich nun aber x2, y2?

Danke!
 

JCODA

Top Contributor
Verschiebe deinen Mittelpunkt zum Ursprung (d.h. subtrahiere von jeder Koordinate den Mittelpunkt.), und mach dann eine Streckung, d.h. berechne wie viel % die 10 pixel sind und berechne dann Prozent*verschobene Koordinate anschließend wieder zurück schieben, indem du den Mittelpunkt wieder draufaddierst.
 

Fohnbit

Top Contributor
Hallo,

vielen Dank. Das scheint aber noch nicht zu funktionieren.
Er sollte ja alle Punkt beim verkleinern zum Zentrum ziehen. Aber die Punkte überschneiden sich teilweise, wenn ich stark verkleinere

Java:
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));
                        }
 

JCODA

Top Contributor
der Prozentsatz sollte nicht vom Punkt sondern vom Polygon abhängen. sonst werden ja die Punkte unterschiedlich viel gestreckt.
 

JStein52

Top Contributor
Aber die Punkte überschneiden sich teilweise
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.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Objete von Polygon mit TreeSet verwalten Java Basics - Anfänger-Themen 1
I Vererbung Polygon erweitern ? Java Basics - Anfänger-Themen 4
S Polygon contains - Erläuterung Java Basics - Anfänger-Themen 3
K draw Polyline will nicht wie Polygon Java Basics - Anfänger-Themen 2
S Speicherbedarf Pixel vs. Polygon? Java Basics - Anfänger-Themen 7
M Polygon umkreisen? Java Basics - Anfänger-Themen 47
K Methoden contains()-Methode für Punkt in Polygon Java Basics - Anfänger-Themen 5
R Polygon erweitern Java Basics - Anfänger-Themen 10
M Polygon Punkte im Uhrzeigersinn sortieren Java Basics - Anfänger-Themen 2
G Polygon in Frame zeichnen Java Basics - Anfänger-Themen 3
E Polygon und Polyline Java Basics - Anfänger-Themen 30
K Polygon Java Basics - Anfänger-Themen 14
C Polygon um Figur bestimmen Java Basics - Anfänger-Themen 10
K Polygon in Java3D (Java 3D) zeichnen Java Basics - Anfänger-Themen 4
T Polygon.contains Fehler Java Basics - Anfänger-Themen 2
Rene_Meinhardt Polygon.Contains() funktioniert nicht richtig? Java Basics - Anfänger-Themen 3
0 problem beim Polygon zeichnen Java Basics - Anfänger-Themen 3
G bild in polygon zeichnen Java Basics - Anfänger-Themen 6
G Polygon Java Basics - Anfänger-Themen 7
I drehendes polygon Java Basics - Anfänger-Themen 4
O Array verkleinern, vergrößern Java Basics - Anfänger-Themen 1
S Methoden Feld vergrößern Java Basics - Anfänger-Themen 1
D Verhindern das repaint beim vergrößern aufgerufen wird Java Basics - Anfänger-Themen 9
J Erste Schritte Arrays vergrößern Java Basics - Anfänger-Themen 19
M Interface JFileChooser vergrößern Java Basics - Anfänger-Themen 4
F String immer weiter nach Bedarf vergrößern Java Basics - Anfänger-Themen 3
T Quader vergrößern Java Basics - Anfänger-Themen 12
A Java Arrays immer um eins "vergrößern" Java Basics - Anfänger-Themen 4
M Ziffer einträge vergrößern Java Basics - Anfänger-Themen 16
E JTextArea beim Schreiben automatisch vergrößern Java Basics - Anfänger-Themen 7
P JLabel auf JFrame - Schrift vergrößern Java Basics - Anfänger-Themen 2
T Array vergrößern Java Basics - Anfänger-Themen 6
L JPanel vergrößern bis JScrollPane nicht mehr zu sehen Java Basics - Anfänger-Themen 7
K Grafik vergrößern/verkleinern Java Basics - Anfänger-Themen 3
C Array vergrößern? Java Basics - Anfänger-Themen 8
S Dialog dynamisch vergrößern Java Basics - Anfänger-Themen 2
Z Array vergrößern Java Basics - Anfänger-Themen 15
B arrays dynamisch vergrößern Java Basics - Anfänger-Themen 5
N Applet Heap vergrößern Java Basics - Anfänger-Themen 10
G heap size vergrößern Java Basics - Anfänger-Themen 6
G zweidimensionales Array vergrößern Java Basics - Anfänger-Themen 3
D Array vergrößern Java Basics - Anfänger-Themen 7
S JPanel im nachhinein vergrößern? Java Basics - Anfänger-Themen 7
B Array im Nachhinein vergrößern? Java Basics - Anfänger-Themen 3
E Textfelder vergrößern Java Basics - Anfänger-Themen 11
N JPanel / JTextArea vergrößern Java Basics - Anfänger-Themen 6
G array vergrößern Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben