Konstruktiv solid geometri
Konstruktiv solid geometri (CSG) eller konstruktiv solid geometri er en teknik til modellering af kroppe, der blandt andet er i 3D computergrafik og CAD bruges programmer. Konstruktiv solid geometri gør det muligt for en designer at oprette en kompleks formet krop ved hjælp af boolske operatører til at kombinere grundlegemer til en ny krop. Organer, der stammer fra CSG, ser ofte meget komplekse ud, men i virkeligheden er de ikke andet end klogt forbundne objekter.
Basisobjekter
De grundlæggende objekter, hvorfra CSG -organer kommer ud, kaldes primitiver (se grafisk primitiv ). Typisk er der tale om kroppe, hvis overflade kan beskrives ved hjælp af en relativt simpel matematisk formel, som f.eks B. terninger , cylindre , prismer , pyramider , kugler eller ringe . Sættet med mulige primitiver er normalt begrænset af den anvendte software. Nogle softwarepakker tillader CSG på buede objekter (proceduremæssige eller parametriske overflader), mens andre kun arbejder på polygonale masker (trekantede netværk). Den proceduremæssige eller parametriske tilgang tillader en matematisk nøjagtig beregning og repræsentation af organerne, mens masker altid kun er en mere eller mindre upræcis tilnærmelse af virkeligheden.
Som tidligere nævnt er et komplekst organ skabt af primitiver forbundet med operationer. Normalt er det boolske operationer på sæt: Union (Union, ), Forskel (forskel, ) og skæres (skæringspunkt, ). Den følgende figur viser effekten af operatørerne ved at bruge eksemplet på at forbinde en terning med en kugle:
Ansøgninger
CSG er meget populær blandt designere på grund af dets evne til at danne komplekse geometrier med en række relativt enkle kroppe. Designeren kan (med de fleste programmer) ændre geometrien bagefter ved at ændre placeringen (eller transformationen) af de enkelte objekter eller den boolske operator, som objekterne er forbundet med. Så designeren kan skabe sin model interaktivt og intuitivt gennem forsøg og fejl.
CSG bruges dog også af forskellige programmer "under hætten", altså uden at brugeren er opmærksom på eksistensen af CSG -operationerne. Så brug z. For eksempel bruger spilmotorerne fra Unreal og Quake CSG -processen. Simuleringsprogrammer , der simulerer processerne på værktøjsmaskiner, bruger normalt også CSG.
CSG træ
Da flere CSG -operationer, der udføres efter hinanden generelt ikke er kommutative, kan de hierarkisk ordnes og overføres til et CSG -træ. Hvert blad svarer til en primitiv, hver knude til en CSG -operation (eller mellemresultatet fra en CSG -operation, som kan transformeres igen). Træets rod er slutresultatet.
De regulariserede sæt af det n-dimensionelle euklidiske rum dannes med links , , (Komplementær sæt) en boolsk algebra, som den kommutative lov også gælder for. det Operatør er ikke en del af denne boolske algebra. Imidlertid er - og Operatør til at udskifte -Brug operatør:
- .
Eksempelobjektet kan derfor også beregnes uden parenteser ( = Terning, = Kugle, = Cylinder):
- .
Se også
litteratur
- Christoph Martin Hoffmann: Geometrisk og solid modellering . Morgan Kaufmann Publishers, San Mateo, Californien 1989, ISBN 1-55860-067-1 .
- Martii Mäntylä: En introduktion til solid modellering . Computer Science Press, Rockville, Maryland 1988, ISBN 0-88175-108-1 .
Weblinks
- CSG -3MF Project - Open Source Library ( GPL ), C ++, COM baseret med C # script support.
- GNU Triangulated Surface library - Open Source ( LGPL ) bibliotek med CSG understøttelse af trekanter
- Computational Geometry Algorithms Library - Open Source ( LGPL , GPL ) bibliotek, der understøtter blandt andet CSG .
- CSG -gengivelsesbiblioteket - open source -bibliotek ( GPL, version 2 ) med billedbaserede CSG -teknikker via OpenGL.
- OpenSCAD - Et simpelt CAD -program til oprettelse af 3D -objekter baseret på CSG.
- HyperFun Project - Et enkelt scriptsprog til udførelse af CSG -operationer på forskellige objekter.
- Oversigt over CSG i avoCADo - open source 3D CAD -software.
- SimpleGeo - Interaktiv CSG -model til Monte Carlo partikeltransportsimuleringer.
- FMEpedia CSGBuilder -eksempel - CSG ved hjælp af såkaldt FME (Feature Manipulation Engine).