Mit Hilfe der Constructive Solid Geometry (CSG) ist es möglich, neue, komplexere Körper aus mehreren einfachen Körpern zu erschaffen.
Die union stellt einfach die Vereinigung mehrerer Körper dar:
/* ............... */
#declare Grosse_Kugel = sphere {
<0, 0, 0>, 1
texture {
pigment {
color rgb <1, 0, 1>
}
finish {
phong 0.9
}
}
}
#declare Kleine_Kugel = object {Grosse_Kugel
scale 0.4
translate <0, 0, -1>
}
union {
object {Grosse_Kugel}
object {Kleine_Kugel}
object {Kleine_Kugel rotate <0, -60, 0>}
object {Kleine_Kugel rotate <0, 60, 0>}
object {Kleine_Kugel rotate < 60, 0, 0>}
object {Kleine_Kugel rotate <-60, 0, 0>}
}
| ![]() |
Die difference "zieht" n Körper von dem ersten angegebenen
Körper ab:
/* ................... */
#declare Grosse_Kugel = sphere {
<0, 0, 0>, 1
texture {
pigment {
color rgb <1, 0, 1>
}
finish {
phong 0.9
}
}
}
#declare Kleine_Kugel = object {Grosse_Kugel
scale 0.4
translate <0, 0, -1>
}
difference {
object {Grosse_Kugel}
object {Kleine_Kugel}
object {Kleine_Kugel rotate <0, -60, 0>}
object {Kleine_Kugel rotate <0, 60, 0>}
object {Kleine_Kugel rotate < 60, 0, 0>}
object {Kleine_Kugel rotate <-60, 0, 0>}
}
| ![]() |
Die intersection bezeichnet den Teil des Raumes, der von allen beteiligten
Körpern belegt wird. Man beachte die Schachtelung! Die Gesamtheit der
kleinen Kugeln wird mit der großen Kugel verglichen. Wäre die union
nicht da, so bliebe der resultierende Körper leer, da es in der Tat keinen
Teil das Raumes gibt, der von allen Körpern belegt ist.
/* ............... */
#declare Grosse_Kugel = sphere {
<0, 0, 0>, 1
texture {
pigment {
color rgb <1, 0, 1>
}
finish {
phong 0.9
}
}
}
#declare Kleine_Kugel = object {Grosse_Kugel
scale 0.4
translate <0, 0, -1>
}
intersection {
object {Grosse_Kugel}
union {
object {Kleine_Kugel}
object {Kleine_Kugel rotate <0, -60, 0>}
object {Kleine_Kugel rotate <0, 60, 0>}
object {Kleine_Kugel rotate < 60, 0, 0>}
object {Kleine_Kugel rotate <-60, 0, 0>}
}
}
| ![]() |