Frage

Ich versuche, eine ebene Fläche Visualizer mit dieser Methode zu entwickeln (weiß nicht, ob dies die Standardmethode ist oder wenn es etwas besser):

    Nimmt 1. Jede Funktion f(x,y,z)=k (wobei k konstant ist), und Grenzen für x, y und z. Nehmen Sie auch in zwei Gitterparameter StepX und Stepz.
    2. auf ein Niveau Kurve Problem, Iterierte von zmin zu ZMAX mit Stepz Abständen zu reduzieren. so f(x,y,z)=k => f(x,y,fixedZ)=k
    3. das gleiche Verfahren Sie mit StepX, um das Problem zu f(fixedX, y, fixedZ)=k Reduzierung
    Löst f(fixedX, y, fixedZ) - k = 0 für alle Werte von y 4, welche diese Gleichung erfüllen wird (unter Verwendung einer Art eines Wurzelsuchalgorithmus).
    5. Für alle Punkte erzeugt werden, diejenigen als Niveaukurve zeichnen (die innere Schleife erzeugt Pegelkurven bei einem gegebenen z, dann für unterschiedliche Z-Werte sind nur Stapel von Höhenlinien)
    6 (optional). Generieren Sie ein Netz aus diesen Höhenlinien / Punkte, die auf der Ebene Satz gehören.

Das Problem, das ich in renne ist mit Schritt 4. Ich habe keine Möglichkeit zu wissen, bevor Hand, wie viele möglichen Werte von y, dass die Gleichung erfüllen werden (genauer gesagt, wie viele einzigartige und reale Werte von y).

Auch ich versuche, das Programm so allgemein wie möglich zu halten, damit ich versuche, die ursprüngliche Funktion f(x,y,z)=k zu irgendwelchen Einschränkungen nicht zu begrenzen, wie Glätte oder Polynom andere als k konstant sein muß für eine ebene Fläche erforderlich.

Gibt es einen Algorithmus (ohne CAS / symbolische Lösung verwendet wird), die die Wurzel identifizieren (s) eine Funktion, auch wenn es mehrere Wurzeln hat? Ich weiß, dass bisektion eine harte Zeit mit diesem haben wegen der Möglichkeit ohne Vorzeichenwechsel über die Region, aber wie funktioniert das secant / Newtons Methode fare? Welche Menge von Funktionen kann die Sekante / Newtons Methode verwendet werden, und es kann erkennen und finden Sie alle einzigartigen realen Wurzeln innerhalb von zwei gegebenen Grenzen? Oder gibt es eine bessere Methode zur Erzeugung / Visualisierung von ebenen Flächen?

War es hilfreich?

Lösung

Ich glaube, ich habe die Lösung für mein Problem gefunden. Ich habe ein wenig mehr Forschung Bit und entdeckte, dass ebene Fläche mit isosurface synonym ist. Also in der Theorie so etwas wie eine Marching Cubes Methode sollte funktionieren.

Andere Tipps

Falls Sie benötigen ein Beispiel des Algorithmus laufender Würfel sind Besuche

http://stemkoski.github.com/Three.js/Marching- Cubes.html

(verwendet JavaScript / Three.js für die Grafik).

Für weitere Informationen über die Theorie, sollten Sie den Artikel zu einem

Besuchen

http://paulbourke.net/geometry/polygonise/

Ein einfacher Weg,

2D: plot (x, y) mit Farbe = Boden (q * f (x, y)) in Graustufen, wobei q einiger beliebiger Faktor ist. 3D: plot (x, y, Boden (q * f (x, y))

Effektiv Höhen der Funktion, die äquivalent sind, wird auf der gleichen ebenen Fläche repräsentieren.

Wenn Sie die Ebene Kurven erhalten Sie die 2D-Verfahren und Kantenerkennung / Region Kategorisierung verwenden können, um die Punkte (x, y) auf dem gleichen Niveau zu erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top