[#1] Troche matematyki... takiej z podstawowki
Czesc,
to nawet nie pasuje do dzialu Programowanie, ale...

Chodzi mi o skalowanie obrazka z zachowaniem "aspect ratio".
Potrzebuje jak najprostszego IF-a co mi powie wg ktorej krawedzi (pionowa, pozioma) mam skalowac obrazek by miescil sie caly w oknie.

Na te chwile wymyslam same "potworki" co na przyklad wybieraja poprawna krawedz ale do czasu ... przy pewnych rozmiarach okna nagle skalowanie odbywa sie wg tej drugiej krawedzi i wylazi za okno albo co gorsza traci sapect ratio.

Na razie ide po najmniejszej lini oporu i "tworze glupoty" typu:

jesli (szerokosc iffa)/(szerokosc okna) > (wysokosc iffa)/(wysokosc okna) to skaluj wg szerokosci (docelowa szerokosc bedzie szerokoscia okna) i wylicz wysokosc

wiem ze to musi byc cos zupelnie innego ale ja dzis nic nie wymysle ...
[#2] Re: Troche matematyki... takiej z podstawowki

@pch, post #1

Na dobrej drodze jestes imo:

float wr = winw / iffw;
float hr = winh / iffh;
float ratio = min(wr, hr);
int width = iffw * ratio;
int height = iffh * ratio;

Oraz: szukasz linii, ktora ma najmniejszy opor a nie najmniejszej linii z oporem.
[#3] Re: Troche matematyki... takiej z podstawowki

@pch, post #1

[*] Ratio obrazka większe niż ratio okna, wtedy krawędź pozioma okna to podstawa skalowania
[*] Ratio obrazka mniejsze od 1 , wtedy krawędź pionowa jako podstawa skalowania
[*] Pozostałe ratio, obliczamy na podstawie dłuższego boku czy zmieści się krotszy w oknie. Jeśli nie , to krótszy przyjmuje jako odnośnik skalowania

Ostatnia aktualizacja: 26.12.2021 23:25:44 przez Norbert

Ostatnia aktualizacja: 26.12.2021 23:26:11 przez Norbert
[#4] Re: Troche matematyki... takiej z podstawowki

@elf, post #2

Heh,
czyli dobrze sobie wymyslilem tylko zjadlem dzielenie w jednym miejscu bo u mnie jeszcze dochodzi "polowa pionowej rozdzielczosci" jesli ekran jest hires a obrazek ma PAR 1:1
Dzieki!

A to zajelo mi godzine by rozszyfrowac :
Oraz: szukasz linii, ktora ma najmniejszy opor a nie najmniejszej linii z oporem.

Chyba pora isc spac , hehehe.

@Norbert
Wystarczy to co wyzej - ...przynajmniej jeszce tak mi sie wydaje.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem