2017-05-11 74 views
5

Losowo wygenerowałem kilka punktów na płótnie JavaScript Zastanawiam się, jaka jest najskuteczniejsza metoda rysowania trójkątów łączących punkty w jednolity sposób. Celem jest, aby trójkąty wypełniały całe płótno bez zachodzenia na siebie.Generowanie trójkątów z losowego zestawu punktów


Dla reprezentacji wizualnej, tutaj jest obraz punktów, które losowo wygenerowałem na płótnie. Jak widzisz, być może będę musiał zmodyfikować sposób, w jaki losowo umieszczam punkty na płótnie.

points

I tak chcę rysować trójkąty.

enter image description here

+0

Rozważmy [Delaunay Triangulation] (https://en.wikipedia.org/ wiki/Delaunay_triangulation) – Phrogz

+0

Istnieje biblioteka JavaScript do tego (jak zawsze haha): https://github.com/ironwallaby/delaunay –

+0

Dzięki @Phrogz, to powinno wystarczyć, aby skierować mnie we właściwym kierunku. – getmicah

Odpowiedz

1

Dzięki @Phorgz & @GabeRogan dla wskazujące mnie we właściwym kierunku. Delaunay Triangulacja była zdecydowanie drogą, którą trzeba przejść, a skończyło się to bardzo szybko, nawet przy aktualizacji płótna jako animacji.

Skończyłem z użyciem pakietu npm faster-delaunay, który wykorzystuje algorytm dziel i podbijaj, aby triangulować losowo generowane punkty.

Tutaj jest wynikiem tego, co mam narysowane na płótnie, że aktualizacje jako punkty poruszania się samolotu:

delaunay