„Constructive Solid Geometry“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[ungesichtete Version][ungesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
SieBot (Diskussion | Beiträge)
K Bot: Ergänze: pl:CSG
Keine Bearbeitungszusammenfassung
Zeile 39: Zeile 39:
*{{Literatur||Autor=Christoph Martin Hoffmann||Titel=Geometric & Solid Modeling||Verlag=Morgan Kaufmann Publishers||Ort=San Mateo, California||Jahr=1989||ISBN=1-55860-067-1}}
*{{Literatur||Autor=Christoph Martin Hoffmann||Titel=Geometric & Solid Modeling||Verlag=Morgan Kaufmann Publishers||Ort=San Mateo, California||Jahr=1989||ISBN=1-55860-067-1}}
*{{Literatur||Autor=Martii Mäntylä||Titel=An Introduction to Solid Modeling||Verlag=Computer Science Press||Ort=Rockville, Maryland||Jahr=1988||ISBN=0-88175-108-1}}
*{{Literatur||Autor=Martii Mäntylä||Titel=An Introduction to Solid Modeling||Verlag=Computer Science Press||Ort=Rockville, Maryland||Jahr=1988||ISBN=0-88175-108-1}}

== Externe links ==
* [http://www.leadwerks.com/files/csg.pdf Leadwerks Software 'What is Constructive Solid Geometry?'] - Erklaerung der CSG Definitionen, Gleichungen etc.
* [http://gts.sourceforge.net/ GNU Triangulated Surface library] - OpenSource ([[LGPL]]) Bibliothekt mit CSG Unterstuetzung fuer Dreiecke
* [http://www.cgal.org Computational Geometry Algorithms Library] - OpenSource ([[LGPL]], [[Q Public License|QPL]]) Bibliothek welche unter anderem [http://www.cgal.org/Part/PolygonAndPolyhedronOperations CSG unterstuetzt].
* [http://openCSG.org/ The CSG rendering library] - OpenSource Bibliothek ([[GPL, Version 2]]) mit Bildbasierenden CSG Techniken via OpenGL.
* [http://hyperfun.org/ HyperFun Project] - Eine einfache Skriptsprache um CSG Operationen auf verschiedene Objekte anzuwenden.
* [http://avocado-cad.sourceforge.net/wiki/index.php/Dev_Implementation#CSG_Boolean_Operations Overview of CSG in avoCADo] - OpenSource 3D CAD software.
* [http://www.cern.ch/theis/simplegeo SimpleGeo] - interaktiver CSG Modeler fuer Monte Carlo Teilchentransport Simulationen.
* [http://www.fmepedia.com/index.php/CSGBuilder_Example FMEpedia CSGBuilder example] - CSG mittels sogenanter FME (Feature Manipulation Engine).
* [http://www.solidgraphics.com/ SolidKit Library] - Bibliothek zur Entwicklung von 3D/2D Grafikapplikationen in C++. Unterstuetzt CSG auf Dreiecksbasis via OpenGL.



[[Kategorie:Geometrische Modellierung]]
[[Kategorie:Geometrische Modellierung]]

Version vom 15. Juli 2008, 09:45 Uhr

Constructive Solid Geometry (CSG) oder Konstruktive Festkörpergeometrie ist eine Technik zum Modellieren von Körpern, die u. a. in der 3D-Computergrafik und bei CAD-Programmen genutzt wird. Constructive Solid Geometry ermöglicht einem Designer komplexe Oberflächen und Körper zu erzeugen, indem er boolesche Operatoren benutzt, um Objekte zu kombinieren. Aus der CSG hervorgegangene Körper wirken oft sehr komplex, sind aber in Wirklichkeit nichts anderes als geschickt verknüpfte Objekte.

Die Basisobjekte, aus denen CSG-Körper hervorgehen, nennt man Primitive (vgl. Grafisches Primitiv). Typischerweise handelt es sich dabei um Körper, deren Oberfläche mittels einer relativ einfachen mathematischen Formel beschrieben werden kann, wie z. B. Würfel, Zylinder, Prismen, Pyramiden, Kugeln oder Ringe. Die Menge der möglichen Primitive wird gewöhnlich von der verwendeten Software begrenzt. Einige Software-Pakete erlauben CSG auf gekrümmten Objekten (prozedurale oder parametrische Oberflächen), während andere nur auf polygonalen Meshes (Dreiecksnetze) arbeiten. Der prozedurale oder parametrische Ansatz erlaubt eine mathematisch exakte Berechnung und Repräsentation der Körper, während Meshes immer nur eine mehr oder weniger ungenaue Annäherung an die Wirklichkeit sind.

Wie bereits erwähnt, wird ein komplexer Körper von Primitiven erzeugt, die durch Operationen verknüpft sind. Gewöhnlich handelt es sich dabei um boolesche Operationen auf Mengen: Vereinigung (Union, ), Differenz (Difference, ) und Schnitt (Intersection, ). Folgende Abbildung zeigt die Wirkung der Operatoren exemplarisch an der Verknüpfung von Würfel mit Kugel:

Anwendungen

CSG ist unter Designern sehr beliebt, da man mit einer Anzahl relativ einfacher Körper komplexe Geometrien formen kann. Der Designer kann (bei den meisten Programmen) die Geometrie auch im Nachhinein noch ändern, indem er die Position (bzw. Transformation) der einzelnen Objekte oder den booleschen Operator ändert, mit dem die Objekte verbunden sind. Der Designer kann also sein Modell interaktiv und intuitiv, durch Versuch-und-Irrtum, kreieren.

CSG wird aber auch von diversen Programmen "unter der Haube" benutzt, d. h. ohne dass der Benutzer etwas von der Existenz der CSG-Operationen mitbekommt. So benutzen z. B. die Game-Engines von Unreal und Quake das CSG-Verfahren. Simulationsprogramme, die die Abläufe an Werkzeugmaschinen simulieren, verwenden i. d. R. ebenfalls CSG.

CSG-Baum

Beispiel eines CSG-Baumes. An den Knoten sind zur Verdeutlichung die jeweiligen Operationen eingezeichnet.

Da mehrere hintereinander ausgeführte CSG-Operationen im Allgemeinen nicht kommutativ sind, lassen sie sich hierarchisch ordnen und in einen CSG-Baum überführen. Jedes Blatt entspricht dabei einem Primitiv, jeder Knoten einer CSG-Operation (bzw. dem Zwischenergebnis aus einer CSG-Operation, welches wieder transformiert werden kann). Die Wurzel des Baumes ist das Endergebnis.

Anmerkung: Die regularisierten Mengen des dimensionalen euklidischen Raumes bilden mit den Verknüpfungen (Komplementärmenge) eine boolesche Algebra, für die auch das Kommutativgesetz gilt. Der -Operator ist nicht Teil dieser booleschen Algebra. Allerdings lassen sich der und Operator als Ersatz für den -Operator verwenden: . Das Beispielobjekt lässt sich von daher auch ohne Klammerung berechnen ( = Würfel, = Kugel, = Zylinder): .


Siehe auch

Literatur

  • Christoph Martin Hoffmann: Geometric & Solid Modeling. Morgan Kaufmann Publishers, San Mateo, California 1989, ISBN 1-55860-067-1.
  • Martii Mäntylä: An Introduction to Solid Modeling. Computer Science Press, Rockville, Maryland 1988, ISBN 0-88175-108-1.