Hallo, ich habe einen geschlossenen Polygonzug (x1,y1), (x2,y2), (x3,y3), ..., (x1,y1). Nun ist meine Frage wie ich diesen Polygonzug form- und mittelpunkts-treu verkleinern kann. Vielen Dank für eure Ideen
Du verschiebst das Koordinatensysten, Nullpunkt = Polygon-Mittelpunkt, skalierst alle Koordinaten, schiebst das Polygon wieder zurück.
Wobei die schwierigere Frage ist, was der Mittelpunkt eines Polygons ist (oder meinst du den Schwerpunkt?)
Linksammler schrieb: > Du verschiebst das Koordinatensysten, Nullpunkt = Polygon-Mittelpunkt, > skalierst alle Koordinaten, schiebst das Polygon wieder zurück. Also du meinst einach das gesamte Koorinatensystem (also alle x und y-Werte der Punkte) mit einem Faktor skalieren ? Und dann die "Mittelpunktskoordinate" (welche auch immer die Genau sein mag Mittelpunkt, Schwerpunkt, ...) des Skalierten Poygonzuges auf den Mittelpunkt des orginalen (größeren) Poygonzuges zu legen?
Michael L. schrieb: > Linksammler schrieb: >> Du verschiebst das Koordinatensysten, Nullpunkt = Polygon-Mittelpunkt, >> skalierst alle Koordinaten, schiebst das Polygon wieder zurück. > > Also du meinst einach das gesamte Koorinatensystem (also alle x und > y-Werte der Punkte) mit einem Faktor skalieren ? Nein. Erst das Polygon so verschieben, dass dein 'Mittelpunkt' (welcher auch immer das sein mag) im 0-Punkt des Koordinatensystems zu liegen kommt! Dann erst kannst du skalieren. Das ist ein alter 'Trick' in der Grafik. Wenn dir etwas formelmässig 'zu schwer' ist oder die Formeln ekelig werden, dann verschiebe die Situation so, dass dein invarianter Punkt (also der Punkt, der sich nicht verändern soll) im 0-Punkt des Koordinatensystems zu liegen kommt. Dort ist dann oft die Operation formelmässig viel einfacher. Nachdem du die Operation dort dann ausgeführt hast, schiebst du den Mittelpunkt, und mit ihm das Ergebnis der Operation, wieder zurück an seinen ursprünglichen Platz. Zum Beispiel ist das Drehen um einen bestimmten Punkt formelmässig ekelig. Man kann sich die Formeln natürlich herleiten, aber einfacher ist es, ganz einfach den Drehpunkt in den 0-Punkt zu verschieben (und mit ihm natürlich das ganze Polygon), im 0-Punkt dann die Drehung zu machen (die dort formelmässig einfach durchzuführen ist) und dann das gedrehte Polygon wieder mit der inversen Drehpunktverschiebung zurückzutransformieren. Ein anderes Beispiel ist zum Beispiel die Berechnung der Schnittpunkte, in denen sich 2 beliebige Kreise schneiden. DIe Formeln dafür, wenn die Kreise irgendwo auf der 2D Ebene liegen, sind ekelig. Einfacher wird das ganze, wenn man die ganze Situation (also die beiden Kreise) erst mal so transformiert, dass der Mittelpunkt des einen Kreises im 0-Punkt des Koordinatensystems liegt. Transformiert man dann die soweit transformierte Szenerie nochmal, indem man sie so dreht, dass der Mittelpunkt des 2.ten Kreises dann auch noch auf der x Achse liegt, dann wird die Berechnungder beiden Schnittpunkte in dieser Szenerie (fast) zum Kinderspiel. Hat man die beiden Schnittpunkte, dann geht man mit ihnen die ganze Transformationskette einfach rückwärts: erst die Drehung wieder aufheben, dann die Verschiebung und kriegt so die Lösung für den ursprünglichen Fall der beiden Kreise irgendwo in der Ebene. Das Vorgehen ist genau das, was Mathematiker in ihren Beweisen 'ohne Beschränkung der Allgemeinheit' nennen. Sie führen den Beweis für einen besonders einfachen Fall und zeigen, wie man einen komplexen Fall immer auf den einfachen Fall zurückführen kann.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.