Mam siatkę, twarze , krawędzie i wierzchołki , i mam listę wstępnie zdefiniowanych konturów ustawionych poziomów.
Jakiego algorytmu mogę użyć do najskuteczniejszego tworzenia konturów?
Wykres konturu pokazano powyżej. Linie tego samego koloru mają to samo wartość.
computational-geometry
visualization
Grawiton
źródło
źródło
Odpowiedzi:
Można to zrobić za pomocą pętli nad każdym elementem, a następnie dla każdego elementu pętli nad krawędziami. Następnie dla każdej krawędzi określ współrzędną dla danego konturu, jeśli przecina on krawędź, tj. Sprawdź, czy kontur przyjmuje wartość w przedziale między wartościami wierzchołków. Jeśli kontur przecina dwie krawędzie, narysuj linię między współrzędnymi między wykrytymi punktami przecięcia na krawędziach.
Wykonanie tego dla wszystkich elementów utworzy kontury. Opcją jest również udoskonalenie drobniejszej siatki przez interpolację każdego trójkąta, a następnie użycie delangijskich triangulacji rafinowanej siatki, a następnie zastosowanie procedury opisanej powyżej w celu uzyskania wystarczająco wysokiej rozdzielczości.
źródło