Ich versuche, eine interaktive 3D-Darstellung von Zellen, die durch den Schnittpunkt beliebiger Oberflächen definiert sind, zu erstellen. Mir fällt es schwer, herauszufinden, wie man daraus ein Mesh herstellt (oder gibt es etwas Besseres als ein Mesh, das ich für 3D-Volumes verwenden sollte?). Jede Oberfläche S wird durch einen analytischen Ausdruck für eine gegebene Ebene, Kugel, Zylinder, Kegel, etc., wie s f (x, y, z) = 0, wie diejenigen = Hier:Modellierung von 3D-Zellen durch Schnittpunkte von Oberflächen
Für Jede Zelle habe ich eine Liste von Oberflächen und eine +/- Sinn für jede Oberfläche. Damit ist es einfach zu bestimmen, ob ein x, y, z Punkt innerhalb der Zelle liegt, indem dieser Punkt in die Gleichung für jede der Begrenzungsflächen eingefügt wird, und wenn das Ergebnis + für alle + Flächen und - für alle Flächen der Punkt ist liegt drin. Offensichtlich, wenn das Ergebnis für irgendeine Oberfläche Null ist, liegt der Punkt auf dieser Oberfläche.
Ich kann Tausende von Gitterpunkten testen, indem ich für jede Zelle die Punkte notiere, die innerhalb dieser Zelle liegen, und dann die äußersten dieser Punkte verwenden, um ein Gitter für diese Zelle zu erstellen. Allerdings habe ich tausende von Zellen und das wäre einfach nicht schnell genug. Viele Zellen sind sehr klein oder haben ein niedriges Seitenverhältnis im Vergleich zu anderen, so dass ich ein sehr feines Raster von Punkten benötigen würde, wenn ich es so machen würde.
Kann jemand einen effizienten Weg vorschlagen, Zellen, die auf diese Weise definiert sind, in ein statisches 3D-Modell zu bringen? Gibt es irgendeine Art von Bibliothek, die mit dieser Art von Geometrie-Spezifikation arbeitet, die 3D-Netze für mich erstellen kann? Fehle ich etwas Offensichtliches?
Danke, Nick