Poszukuję metody znajdowania wyrównanego względem osi prostokąta wewnątrz wielokąta wklęsłego lub wypukłego.Znajdowanie prostokąta ograniczonego wewnątrz wklęsłego/wypukłego wielokąta
Szukałem w Internecie, najbliższe rozwiązania, jakie mogłem znaleźć, pasowałyby tylko do wypukłego wielokąta, a nie do wklęsłego. Na przykład -
Finding an axis-aligned rectangle inside a polygon
Szczerze mówiąc nie jestem wielkim matematyki wiz, więc wolałbym znaleźć przykłady kodu lub biblioteki kodu, ale myślę, że mogę sobie trochę matematyki przez siebie, albo znaleźć kogoś aby mi w tym pomóc.
Byłoby naprawdę miło, gdyby rozwiązanie może być w Javie też, ale może jestem zbyt zachłanny: P
Edit: W odpowiedzi na komentarz Russella, Dodaję trochę więcej informacji.
Prostokąt ograniczony powinien być jak największy. Prostokąt ma zawierać tekst wewnątrz. Maks. Od 1 do 4 słów, z obsługą zawijania tekstu. Jeśli na przykład byłaby zbyt cienka, umieściłbym tekst w pionie zamiast w poziomie. Tak więc dla proporcji, domyślam się, że musi wystarczyć do umieszczenia 1-4 słów w pionie lub poziomie z zawijaniem słów. Mogę zmienić rozmiar tekstu, jeśli prostokąt jest mały, ale najlepiej tekst powinien być tak duży, jak to możliwe.
Innym wymaganiem, które byłoby miłe, byłoby to, że jeśli ogólna orientacja wielokąta jest przekątna, a tekst będzie pasował znacznie lepiej, gdy jest zorientowany ukośnie, wówczas prostokąt nie musi być wyrównany z osią ", ale zamiast tego powinny być wyrównane z ukośnymi liniami wielokąta. Sądzę, że to żądanie sprawia, że jest to naprawdę trudne, ale jeśli myślicie, że to możliwe, byłoby wspaniale!
Myślę, że już teraz spełniłem wszystkie wymagania. : P
Dzięki!
Czy są jakieś ograniczenia na prostokącie? Czy chcesz mieć maksymalną powierzchnię? O określonej wysokości lub szerokości? A może jakiś współczynnik proporcji? Czy powinien dotykać krawędzi na co najmniej dwóch rogach? W przypadku wklęsłych wielokątów, gdzie może istnieć kilka różnych możliwych miejsc docelowych, czy istnieje heurystyka, która jest lepsza? –
Cześć Russell, dziękuję za odpowiedź! Zaktualizowałem moje pytanie. – Dror