3d/pr/schneller_kreuzer/andruckabsorber.pov

194 lines
2.6 KiB
POVRay

#include "T_arkonstahl.pov"
#include "glass.inc"
#declare eps = 1E-3;
#declare gummi =
texture {
pigment {
color 0.2
}
}
#declare trafo =
union {
intersection {
sphere {
0, 1
scale <1.1, 4, 1.1>
}
box {
<-1, 0, -1>
<1, 4, 1>
}
texture { T_arkonstahl }
}
intersection {
sphere {
0, 1
scale <1.1, 2, 1.1>
texture { T_Copper_3D }
}
box {
<-1, 1.2, -1>
<1, 2, 1>
}
translate <0, 2.3, 0>
}
intersection {
sphere {
0, 1
scale <1.1, 2, 1.1>
texture { T_Copper_3D }
}
box {
<-1, 1.4, -1>
<1, 2, 1>
}
translate <0, 2.6, 0>
}
}
#declare andruckabsorber1 =
union {
box {
<4, 0, -2>
<5, 2, +2>
}
intersection {
cylinder {
<5, 0, 0>
<6, 0, 0>
4
}
box {
<5-eps, 0, -4>
<6+eps, 4, +4>
}
scale <1, 1, 3/4>
}
cylinder {
<6, 2, 0>
<7, 2, 0>
2
}
cone {
<7, 2, 0>, 1.8
<9, 2, 0>, 1.3
}
cone {
<9, 2, 0>, 1.3
<9.2, 2, 0>, 1.5
}
cylinder {
< 9.2, 2, 0>
<10.0, 2, 0>
1.7
}
superellipsoid {
<0.1, 0.1>
scale <1, 2, 3>
translate <11, 2, 0>
}
union {
box {
<0, 0, 0>, <1.4, 0.9, -0.01>
texture {
pigment {Black}
}
}
box {
<0.4, 0.5, 0.01>, <1.3, 0.8, -0.02>
texture {
pigment {Green}
}
}
sphere {
<0.55, 0.35, 0.01>, 0.13
scale <1, 1, 0.1>
texture {
pigment {Green}
}
}
sphere {
<0.85, 0.35, 0.01>, 0.13
scale <1, 1, 0.1>
texture {
pigment {Yellow}
}
}
sphere {
<1.15, 0.35, 0.01>, 0.13
scale <1, 1, 0.1>
texture {
pigment {Red}
}
}
matrix < // swap x<->z // swap x<->z
0, 0, 1,
0, 1, 0,
1, 0, 0,
0, 0, 0
>
translate <4, 1, -0.7>
}
texture { pigment { color White }}
}
#declare andruckabsorber2 =
union {
superellipsoid {
<0.1, 0.1>
scale <1, 2, 2.5>
translate <12, 2, 0>
}
cone {
<13, 2, 0>, 2
<13.2, 2, 0>, 1.9
}
cone {
<13.2, 2, 0>, 1.7
<14.0, 2, 0>, 1.0
}
sphere {
<14.0, 2, 0>, 0.5
texture { T_Copper_3D }
}
texture { pigment { color White }}
}
#declare andruckabsorber =
union {
#local I = 0;
#while (I < 360)
object {
andruckabsorber1
rotate <0, I, 0>
}
#local I = I + 60;
#end
#local I = 15;
#while (I < 360)
object {
andruckabsorber2
rotate <0, I, 0>
}
#local I = I + 30;
#end
#local I = 0;
#while (I < 360)
object {
trafo
rotate <0, 45, 0>
translate <13.5, 0, 0>
rotate <0, I, 0>
}
#local I = I + 30;
#end
}