Witam, chciałbym napisać aplikację do mojej firmy, która rozplanowywałaby mi najlepsze z możliwych rozłożenie obiektów tak, aby zapełnić dane pole powierzchni było zapełnione możliwie największą ilością mniejszych pól. Jednakże program obsługiwałby jedynie prostokąty i kwadraty.
Przykładowo: Mam duże pole powierzechni (obszar roboczy) o wymiarach: 300 cm x 200 cm i kształcie prostokąta. Chcę go wypełnić małymi prostokątami o wymiarach 17x8 cm(przykładowo). Teraz zadaniem programu byłoby znalezienie najbardziej optymalnego rozłożenia małych prostokątów na obszarze roboczym w taki sposób, że obszar roboczy powinien pomieścić jak największą ilość małych prostokątów.
Oczywiście program miałby być dużo bardziej zaawansowany to znaczy
- wprowadzanie dowolnej ilości prostokątów o różnych rozmiarach
- wprowadzenie liczby minimalnej, maksymalnej na danym obszarze itp.
Do tej pory wpadłem na pomysł aby po prostu badać różne położenia obiektów i za każdym razem liczyć pole powierzchni zajmowane przez obiekty. Jeżeli w danym położeniu pole będzie większe od poprzedniego to to położenie zostanie tymczasowo zapisane jako najlepsze i będzie porównywał pola innych położeń, każde większe pole to lepsza optymalizacja.
Jeśli ktoś potrzebuje zwizualizowania problemu załączam przykładowy obrazek: