@@Gunnar:
Nun willst du nicht beliebige Werte für k zulassen, sondern (offenbar) nur 1, 1.25, 1.5, 1.75, … Also mit 4 multiplizieren, den ganzzahligen Anteil davon nehmen und wieder durch 4 teilen:
[latex]k = \frac{1}{4} \cdot \operatorname{floor} \left( 4 \cdot \sqrt{\frac{A_{max}}{b \cdot h}} \right)[/latex]
Super!
Und dank deiner hervorragenden Erklärung, kann sogar ich die Herleitung nachvollziehen.
Liefert auch das gewünschte Ergebnis - perfekt!
Hier meine Umsetzung in Visual Basic:
Dim zoomMax As Double
zoomMax = (Math.Floor((Math.Sqrt(MaxPixCount / (Image.Width * Image.Height))) * 4) * 0.25) * 100
Was sind "25% Schritte"? "Sc", "hr", "it" und "te"?
Ja, wenn man es hinterher nochmal liest ist die Formulierung unglücklich und irreführend. Gemeint war und ist, dass sich der Zoomfaktor, ausgehend von 1 in 0.25 Schritten erhöht (dazu gibt es einen Schieberegler, der bei Klick diese Schrittweite hat.
Die Berechnung dient eben dazu, wenn eine Grafik geladen wurde, den oberen (Zoom-)Grenzwert festzulegen, da es bei Überschreitung der 300 Mio. Pixel zu einem Fehler kommt.
@all:
Allen Postern meinen besten Dank für eure Hilfe & Unterstützung.
Gruß Gunther