• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Algorytm służący do skalowania prostokątów względem siebie

Object Storage Arubacloud
0 głosów
268 wizyt
pytanie zadane 4 czerwca 2016 w Algorytmy przez dkarski Obywatel (1,610 p.)
Cześć,

 

mam problem typu, którego chciałbym uzyskać efekt podobny do poniższego przykładu na dole pod linkiem:
http://unitegallery.net/index.php?page=tiles-justified

Mam grupę prostokątów o różnej wysokości i szerokości.

Chcę zmienić względem sąsiadujących siebie prostokątów szerokość i wysokość zachowując ich proporcję w linii (pod względem wysokości).

Ważne jest by zachować minimum szerokości x wysokości y oraz maksymalną szerokość x2 i wysokość y2.

Szerokość ma być elastyczna co do szerokości kontenera jak, w przykładzie.

Jaki byście zastosowali tu algorytm, bądź fukncje?

 

Pozdrawiam i serdecznie dziękuję za każdą chęć pomocy :))

1 odpowiedź

+2 głosów
odpowiedź 4 czerwca 2016 przez MetRiko Nałogowiec (37,110 p.)
wybrane 5 czerwca 2016 przez dkarski
 
Najlepsza

Czysta matma.. Ustalasz sobie, nazwijmy to, wysokość bazową H, gdzie H<=wysokości obrazków. Następnie skalujesz obrazki do tej wysokości jak już masz to zrobione to powinieneś uzyskać coś takiego:
[  ][ ][    ][ ]------
[    ][ ][       ][ ]-
[  ][ ][][   ][  ]----
Następnie obliczasz odległość od prawej krawędzi do obrazka (to te kreski) i tą odległość (dla każdego rzędu osobno) dzielisz przez ilość obrazków w rzędzie (odległość/ilość=Delta). Jeżeli odległość ta okaże się większa od jakiejś tam granicznej wartości (Delta>Granica) to wtedy zamieniasz najmniejszy obrazek w danym rzędzie z pierwszym lepszym większym od niego obrazkiem z rzędu drugiego. Jeżeli warunek z graniczną wartością Granica jest spełniony to skalujesz poziomo każdy obrazek w rzędzie zwiększając jego rozmiar (poziomy) o Deltę. Oczywiście należałoby też dodać jakieś zabezpieczenia np. gdy zabraknie obrazków, a warunek Delta<=Granica dalej byłby niespełniony.. ale to inna bajka.

komentarz 5 czerwca 2016 przez dkarski Obywatel (1,610 p.)

Cześć MetRiko! :))

Dziękuje za Twoją wiadomość! Chciałbym wyrazić wielką wdzięczność za Twoją bezinteresowną pomoc. Kierunek, który wskazujesz jest rozsądny.

Intuicyjnie chciałem zrobić tak, jak piszesz. Zatrzymałem się właśnie przy tym, a co gdyby Delta byłaby większa od Granicy, to co piszesz spełnia mój warunek, którym chce zachować minimum i maximum szerokości, jak wysokości. Zamierzam wdrożyć Twój pomysł i dam znać, jak wyszło :))

Piszesz, że to czysta matma. Odnoszę wrażenie, a nawet potrzebę, jak nie pragnienie przypomnienia sobie podstaw tej matmy. Zastanawiam się od czego zacząć? Czy podręczniki z szkoły średniej? A może sens nauki przy programowaniu jest większy przy rozwiązywaniu po prostu takich problemów, jak powyżej? Jeśli miałbyś wyrazić swoje zdanie, to jakie ono, by było?

--
Pozdrawiam,
Daniel
 

komentarz 5 czerwca 2016 przez MetRiko Nałogowiec (37,110 p.)
Matematyki w programowaniu nauczysz się tylko gdy będziesz próbował sam rozwiązywać zadania wszelkiego rodzaju.. to nie jest typowa matematyka szkolna.. tylko bardziej matematyka zmieszana z myśleniem logicznym.. Tego niestety nie uczą w szkołach.. przynajmniej tych w których ja się uczyłem.
komentarz 7 czerwca 2016 przez dkarski Obywatel (1,610 p.)
ok, może coś algorytmiki zaczerpnę przynajmniej z main2.

W razie czego wprowadziłem zmiany za Twoją sugestią, gdybyś chciał spojrzeć, to zapraszam: http://forum.pasja-informatyki.pl/148468/pierwszy-modul-skalowana-galeria
Nie ukrywam, że Twoja opinia byłaby dla mnie ważne w tym projekcie.
komentarz 7 czerwca 2016 przez MetRiko Nałogowiec (37,110 p.)
Trochę paintowo, ale jest :D
http://speedy.sh/vzxQQ/p.png
komentarz 7 czerwca 2016 przez dkarski Obywatel (1,610 p.)

MetRiko ,

 

musisz odswieżyć, by skalowanie się wczytało - własnie nie mogę tego naprawić...

komentarz 7 czerwca 2016 przez MetRiko Nałogowiec (37,110 p.)
Odświeżałem, odpalałem na chrome i explorerze nawet (x__x) i efekt cały czas taki jak ci wysłałem : /

Podobne pytania

0 głosów
2 odpowiedzi 435 wizyt
+1 głos
3 odpowiedzi 7,000 wizyt
pytanie zadane 21 października 2015 w HTML i CSS przez DariuszH Gaduła (3,100 p.)
0 głosów
2 odpowiedzi 511 wizyt
pytanie zadane 24 stycznia 2017 w HTML i CSS przez DariuszH Gaduła (3,100 p.)

92,568 zapytań

141,420 odpowiedzi

319,622 komentarzy

61,954 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...