Polygonzug formtreu verkleinern Algorithmus

Gast #3994463
Lesenswert?
• ▲
▼
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?
#3994526
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren