3d/pr/entdecker/metagrav.pov

183 lines
4.4 KiB
POVRay

#declare pk_x = 30;
#declare pk_z = 40;
#declare pk_r = 8;
#declare projektorkopf =
union {
#if (1)
prism {
conic_sweep
bezier_spline
1,
44/60,
32
<-(pk_x), -(pk_z-pk_r)>, <-(pk_x), 0>, <-(pk_x), 0>, <-(pk_x), +(pk_z-pk_r)>, // kl
<-(pk_x), +(pk_z-pk_r)>, <-(pk_x), +(pk_z)>, <-(pk_x), +(pk_z)>, <-(pk_x-pk_r), +(pk_z)>, // rlo
<-(pk_x-pk_r), +(pk_z)>, <0, +(pk_z)>, <0, +(pk_z)>, <+(pk_x-pk_r), +(pk_z)>, // ko
<+(pk_x-pk_r), +(pk_z)>, <+(pk_x), +(pk_z)>, <+(pk_x), +(pk_z)>, <+(pk_x), +(pk_z-pk_r)>, // rro
<+(pk_x), +(pk_z-pk_r)>, <+(pk_x), 0>, <+(pk_x), 0>, <+(pk_x), -(pk_z-pk_r)>, // kr
<+(pk_x), -(pk_z-pk_r)>, <+(pk_x), -(pk_z)>, <+(pk_x), -(pk_z)>, <+(pk_x-pk_r), -(pk_z)>, // rru
<+(pk_x-pk_r), -(pk_z)>, <0, -(pk_z)>, <0, -(pk_z)>, <-(pk_x-pk_r), -(pk_z)>, // ku
<-(pk_x-pk_r), -(pk_z)>, <-(pk_x), -(pk_z)>, <-(pk_x), -(pk_z)>, <-(pk_x), -(pk_z-pk_r)> // rlu
scale <1, 22/(1-44/60), 1>
translate <30, 102-22/(1-44/60), 0>
}
difference {
prism {
linear_sweep
bezier_spline
0,
6
32
<-(pk_x), -(pk_z-pk_r)>, <-(pk_x), 0>, <-(pk_x), 0>, <-(pk_x), +(pk_z-pk_r)>, // kl
<-(pk_x), +(pk_z-pk_r)>, <-(pk_x), +(pk_z)>, <-(pk_x), +(pk_z)>, <-(pk_x-pk_r), +(pk_z)>, // rlo
<-(pk_x-pk_r), +(pk_z)>, <0, +(pk_z)>, <0, +(pk_z)>, <+(pk_x-pk_r), +(pk_z)>, // ko
<+(pk_x-pk_r), +(pk_z)>, <+(pk_x), +(pk_z)>, <+(pk_x), +(pk_z)>, <+(pk_x), +(pk_z-pk_r)>, // rro
<+(pk_x), +(pk_z-pk_r)>, <+(pk_x), 0>, <+(pk_x), 0>, <+(pk_x), -(pk_z-pk_r)>, // kr
<+(pk_x), -(pk_z-pk_r)>, <+(pk_x), -(pk_z)>, <+(pk_x), -(pk_z)>, <+(pk_x-pk_r), -(pk_z)>, // rru
<+(pk_x-pk_r), -(pk_z)>, <0, -(pk_z)>, <0, -(pk_z)>, <-(pk_x-pk_r), -(pk_z)>, // ku
<-(pk_x-pk_r), -(pk_z)>, <-(pk_x), -(pk_z)>, <-(pk_x), -(pk_z)>, <-(pk_x), -(pk_z-pk_r)> // rlu
}
prism {
linear_sweep
bezier_spline
0,
6
32
<-(pk_x), -(pk_z-pk_r)>, <-(pk_x), 0>, <-(pk_x), 0>, <-(pk_x), +(pk_z-pk_r)>, // kl
<-(pk_x), +(pk_z-pk_r)>, <-(pk_x), +(pk_z)>, <-(pk_x), +(pk_z)>, <-(pk_x-pk_r), +(pk_z)>, // rlo
<-(pk_x-pk_r), +(pk_z)>, <0, +(pk_z)>, <0, +(pk_z)>, <+(pk_x-pk_r), +(pk_z)>, // ko
<+(pk_x-pk_r), +(pk_z)>, <+(pk_x), +(pk_z)>, <+(pk_x), +(pk_z)>, <+(pk_x), +(pk_z-pk_r)>, // rro
<+(pk_x), +(pk_z-pk_r)>, <+(pk_x), 0>, <+(pk_x), 0>, <+(pk_x), -(pk_z-pk_r)>, // kr
<+(pk_x), -(pk_z-pk_r)>, <+(pk_x), -(pk_z)>, <+(pk_x), -(pk_z)>, <+(pk_x-pk_r), -(pk_z)>, // rru
<+(pk_x-pk_r), -(pk_z)>, <0, -(pk_z)>, <0, -(pk_z)>, <-(pk_x-pk_r), -(pk_z)>, // ku
<-(pk_x-pk_r), -(pk_z)>, <-(pk_x), -(pk_z)>, <-(pk_x), -(pk_z)>, <-(pk_x), -(pk_z-pk_r)> // rlu
scale <0.9, 1.01, 0.9>
}
translate <30, 102, 0>
}
#end
#if (0)
cone {
<80, 0, 0>, 5
<80, 110, 0>, 5
pigment { color Red }
}
#end
intersection {
torus {
40, 20
rotate <90, 0, 0>
scale <1, 1, pk_z/pk_x>
}
box {
<-60, -60, -60>
< 0, 0, 60>
}
translate <70, 80, 0>
pigment { color Yellow }
}
cone {
<0, 0, 0>, 20,
<10, 0, 0>, 20
scale < 1, 1, pk_z/pk_x>
translate <70, 40, 0>
pigment { color Yellow }
}
#if (1)
cone {
<0, 0, 0>, 24,
<10, 0, 0>, 24
scale < 1, 1, 50/24>
translate <80, 40, 0>
}
#end
box {
<80, 0, -50>
<90, 40, 50>
}
cone {
<90, 40, 0>, 14,
<122, 40, 0>, 14
translate <0, 0, -16>
}
cone {
<90, 40, 0>, 14,
<122, 40, 0>, 14
translate <0, 0, +16>
}
}
#declare metagrav =
union {
//bodenplatte
prism {
linear_sweep
linear_spline
-100, 100,
5,
<0, 0>, <10, 20>, <206, 20>, <206, 0>, <0, 0>
rotate <-90, 0, 0>
}
object {
projektorkopf
translate <0, 0, 50>
}
object {
projektorkopf
translate <0, 0, 50>
scale <1, 1, -1>
}
// Hauptaggregateblock
box {
<122, 20, -100>
<178, 48, 100>
}
box {
<118, 20, -100>
<122, 40, 100>
}
cone {
<0, 0, -1>, 1
<0, 0, 1>, 1
scale <4, 8, 100>
translate <122, 40, 0>
}
prism {
linear_sweep
linear_spline
-90, 90
5
<122, 48>, <122, 80>, <128, 80>, <148, 48>, <122, 48>
rotate <-90, 0, 0>
}
prism {
linear_sweep
linear_spline
-80, 80
6
<128, 80>, <148, 48>, <160, 48>, <180, 90>, <128, 90>, <128, 80>
rotate <-90, 0, 0>
}
box {
<148, 0, -60>
<280, 80, 60>
}
pigment {
checker color White*0.7, color White*0.5
scale 10
}
}