Program rozmieszczania prostokątów w arkuszu

0

Pisze program dla robota którego zadaniem jest:

Po podaniu wymiaru arkusza tj. wysokości i szerokości, podajemy ilość prostokątów które mają zostać umieszczone w arkuszu, następnie kolejno podajemy długość i szerokość wszystkich prostokątów. Program wpisuje sobie dane prostokątów do tablicy szerokości i długości.
Następnie program sobie oblicza pola prostokątów i sortuje tablice danych z szerokością i długością prostokątów wg pól prostokątów od największych do najmniejszych.

Do tego miejsca mam napisany program, dalej chciałbym, aby program sprawdzał czy dany prostokąt mieści się w arkuszu, jeśli tak zostanie wyrysowany na arkuszu pisakiem przez robota, jeśli nie sprawdza kolejny prostokąt czy się mieści itd. Powinien to robić w sposób optymalny.

Czy wie ktoś jak to zrobić? nie wiem jak program powinien sobie wyznaczać punkty i je pamiętać aby kolejne prostokąty były umieszczane na prostokątach narysowanych wcześniej.

Proszę o pomoc potrzebne mi to do pracy inż. z góry dziękuję.

0

A teraz po polsku?
Bo napisałeś kupę tekstu z którego guzik wynika. Napisz jasno czego nie umiesz zrobić. Jedyne co zrozumiałem to:

  • nie umiesz sprawdzić czy dany prostokąt mieści się w granicach arkusza - to jest akurat banalne, wyznaczasz równania odcinków zawierających boki arkusza i sprawdzasz czy wszystkie 4 wierzchołki prostokąta znajdują się po prawej stronie odcinków tworzących boki (ew po lewej, zależnie od orientacji odcinków)
    Nie rozumiem też za bardzo co znaczy "aby kolejne prostokąty były umieszczane na prostokątach narysowanych wcześniej". Co znaczy "na prostokątach"? W ich wnętrzu? Czy moze muszą mieć 2 wspólne krawędzie?
0

Chcę napisać program w którym zbiór prostokątów zostanie rozmieszczony w arkuszu(dużym prostokącie), prostokąty nie mogą nachodzić na siebie ani wychodzić poza obszar arkusza lecz mogą mieć styczne boki z sąsiadującymi prostokątami. Krótko mówiąc trzeba upakować optymalnie prostokąty w arkuszu aby był najmniejszy odpad. Myślałem nad drzewem poszukiwań w którym jest wyznaczany punkt zaczepienia najniżej położony po lewej stronie i są sprawdzane warunki czy się prostokąt mieści czy nie. Jeśli się mieści umieszczany jest na arkuszu i sprawdzany jest następny prostokąt. Gdy zostaną umieszczone prostokąty u dołu i kolejny się nie mieści trzeba umieszczać je wyżej nad tymi które są już umieszczone i nie bardzo wiem jak program ma to sprawdzać i pamiętać wcześniejsze prostokąty.

0

google -> problem optymalnego rozkroju

1 użytkowników online, w tym zalogowanych: 0, gości: 1