Ich habe ein implizites Skalarfeld, das in 2D definiert ist. Für jeden Punkt in 2D kann ich einen exakten Skalarwert berechnen, aber es ist eine etwas komplexe Berechnung.
Ich möchte eine Iso-Linie dieser Oberfläche zeichnen, sagen wir die Linie des '0' Wertes. Die Funktion selbst ist fortlaufend, aber die Iso-Zeile "0" kann mehrere fortlaufende Instanzen haben, und es ist nicht garantiert, dass sie alle verbunden sind.
Das Berechnen des Werts für jedes Pixel ist keine Option, da dies zu viel Zeit in Anspruch nehmen würde - in der Größenordnung von ein paar Sekunden und das muss so realtime wie möglich sein.Zeichnen einer Iso-Linie eines impliziten 2D-Skalarfelds
Was ich gerade benutze, ist eine rekursive Raumaufteilung, die man sich als eine Art Viererbaum vorstellen kann. Ich nehme eine anfängliche, sehr grobe Abtastung des Raums, und wenn ich ein Quadrat finde, das einen Übergang von positiven zu negativen Werten enthält, teile ich es rekursiv in 4 kleinere Quadrate und überprüfe es erneut, wobei ich auf der Pixelebene stoppe. Der Positiv-Negativ-Übergang wird durch Abtasten eines Quadrats in seinen 4 Ecken detektiert. Das funktioniert ziemlich gut, außer wenn es nicht funktioniert. Die Iso-Linien, die gezeichnet werden, werden manchmal abgeschnitten, weil die Übergangserfassung für Übergänge fehlschlägt, die in einem kleinen Bereich einer Kante auftreten und die eine Ecke eines Quadrats nicht kreuzen.
Gibt es eine bessere Möglichkeit, Iso-Line-Zeichnen in diesen Einstellungen zu tun?
Der Link zu der These ist tot (404). – IAbstract
Link zu archive.org umgeleitet –