-
1. Data: 2014-10-31 13:19:08
Temat: Rozszerzenie wielokątów o tolerancję
Od: Borneq <b...@a...hidden.pl>
Mam obszar pocięty na małe wielokąty, które raczej się nie przecinają.
Teraz chcę łączyć przylegające (bliskie sobie z pewną tolerancją)
wielokąty po kolorze
http://i.imgur.com/nWVxLN9.png
Na przykładzie chciałbym do zielonego przyłączyć przynajmniej ten lewy
dolny. Jak to zrobić? Trzeba by zmodyfikować wielokąty odsuwając
wierzchołki od środka we wszystkie strony.
Jak wyznaczyć środek? Chyba średnia x z i y nie wystarczy, był jakiś
algorytm na wyznaczanie centroidu.
Gdy mam środek - jak zmodyfikować punkty? Czy długość wektora
przesunięcia proporcjonalna do odległości od środka? ale chciałbym
rozszerzyć o stałą niewielką ilość np. 2 we wszystkie strony
-
2. Data: 2014-10-31 14:41:37
Temat: Re: Rozszerzenie wielokątów o tolerancję
Od: Borneq <b...@a...hidden.pl>
W dniu 2014-10-31 o 13:19, Borneq pisze:
> Gdy mam środek - jak zmodyfikować punkty? Czy długość wektora
> przesunięcia proporcjonalna do odległości od środka? ale chciałbym
> rozszerzyć o stałą niewielką ilość np. 2 we wszystkie strony
Centroid - przerobić procedurę pascalową na C++
http://www.efg2.com/Lab/Graphics/PolygonArea.htm
gdy mam: obliczam najdłuższą odległość od centroidu do wierzchołka.
Mam maxdist, obliczam gamma = tolerancja/maxdist
Następnie powiększam razy (1+gamma) w środku centroidu, czyli od punktu
odejmuję centroid, mnożę i dodaję centroid, zaokrąglam i mam