Wie skaliere ich ein Rechteck auf die maximal mögliche Größe innerhalb eines anderen Rechtecks?

Ich habe ein Quell- und ein Zielrechteck. Ich muss den maximalen Maßstab finden, auf den die Quelle skaliert werden kann, während sie in das Zielrechteck und passtBeibehaltung des ursprünglichen Seitenverhältnisses.

Google gefundenein Weg, es zu tun, aber ich bin nicht sicher, ob es in allen Fällen funktioniert. Hier ist meine hausgemachte Lösung:

Berechnen Sie Höhe / Breite für jedes Rechteck. Dies gibt die Steigungen der Diagonalenmsrc undmdest.Obmsrc < mdst, Quelle skalierenBreite zum Ziel passenBreite (und Skalenhöhe im gleichen Verhältnis)Andernfalls skalieren Sie die QuelleHöhe zum Ziel passenHöhe (und Skalenbreite im gleichen Verhältnis)

Suche nach anderen möglichen Lösungen für dieses Problem. Ich bin mir nicht mal sicher, ob mein Algorithmus in allen Fällen funktioniert!

Antworten auf die Frage(5)

Ihre Antwort auf die Frage