2012-02-26 5 views
5

Poszukuję rekomendacji dla aplikacji lub biblioteki, aby obliczyć dobre pasowania regularnych siatek sześciokątnych do nieregularnego obszaru lub grupy obszarów.Najlepiej dopasowane sześciokątne plamy o nieregularnych obszarach

Minimalnie, chciałbym móc dostarczyć obraz i maksymalną liczbę sześciokątów oraz pobrać obraz, który obraca/przesuwa/skaluje siatkę sześciokątną, aby wypełnić każdy sześciokąt jednym kolorem z minimalnym błędem. Zaawansowaną funkcją może być przeprowadzanie deformacji obrazu podstawowego (w określonych granicach) w celu uzyskania lepszego dopasowania. Mam kilka pomysłów na to, jak sam to zrobię, ale wydaje się, że jest to problem rozwiązany.

Dzięki za wszelkie sugestie.

EDYCJA: Przypadek, o którym myślę, to wygenerowanie rozsądnie wiernych heksagramów prawdziwej geografii do wykorzystania w grach planszowych (lub wirtualnych).

+1

examp Le pomógłby. Wspomniałeś, że liczba sześciokątów jest podana, ale ty też powiedziałeś, że chcesz je skalować - to na pewno zmieni liczbę sześciokątów ... –

+1

@AdiShavit dzięki za komentarz! Zmieniłem to pytanie tak, by zawierało przypadek użycia. Powód, dla którego wspominam o _maksymalnej liczbie sześciokątów, polega na tym, że oczywiście nieskończona liczba sześciokątów uzyskałaby idealne dopasowanie. –

+0

Nie znam biblioteki, ale można traktować siatkę heksadecymalną jako siatkę kwadratów, gdzie naprzemienne wiersze (lub kolumny, jeśli wolisz) są przesunięte o 1/2 kwadratu. Założę się, że mógłbyś się zbliżyć (być może wystarczająco blisko?), Zmniejszając dwukrotnie obraz, przesunięty o 1/2 raz po raz i rozbierając wyniki. (Być może jest to pomysł, który już miałeś. ':)') –

Odpowiedz

0

Moja ogólna idea jest wykonanie następujących czynności:

  • zalecana zbliżenie swój nieregularny kształt krzywej w minimalnym segmentów liniowych
  • wtedy można obliczyć kąt a między każdą parą sements 90 < < 180.

Istnieje kilka metod celem zbliżenia do linii krzywych: explained here