3d/pr/entdecker/metagrav.pov

381 lines
7.4 KiB
POVRay

#include "ynkelonium_texture.pov"
#declare pk_x = 30;
#declare pk_z = 40;
#declare pk_r = 8;
#declare cone_texture =
texture {
material_map {
gif "16_lines_v_capped.map.gif"
map_type 2
texture {
pigment { color rgb <0.75, 0.75, 0.1> }
finish { F_MetalA }
}
texture {
pigment { color rgb <0.05, 0.05, 0.1> }
finish { F_MetalA }
}
}
}
#declare projektorkopf =
union {
#if (1)
difference {
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>
pigment {
color White
}
}
cylinder {
<30, 82, pk_z>, <30, 82+2, pk_z>, 10
pigment { color Red }
}
cylinder {
<30, 86, pk_z>, <30, 86+2, pk_z>, 10
pigment { color Red }
}
cylinder {
<30, 90, pk_z>, <30, 90+2, pk_z>, 10
pigment { color Red }
}
cylinder {
<30, 94, pk_z>, <30, 94+2, pk_z>, 10
pigment { color Red }
}
cylinder {
<30, 98, pk_z>, <30, 98+2, pk_z>, 10
pigment { color Red }
}
}
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>
pigment {
color White
}
}
superellipsoid {
<0.1, 0.1>
scale <20, 1, 30>
translate <30, 102, 0>
texture {
pigment { color rgb <0.05, 0.05, 0.1> }
finish { F_MetalA }
}
}
#end
#if (0)
cone {
<80, 0, 0>, 5
<80, 110, 0>, 5
pigment { color Red }
}
#end
intersection {
torus {
1, 0.5
texture {
material_map {
gif "16_lines.map.gif"
map_type 5
texture {
pigment { color rgb <0.75, 0.75, 0.1> }
finish { F_MetalA }
}
texture {
pigment { color rgb <0.05, 0.05, 0.1> }
finish { F_MetalA }
}
}
}
scale 40
rotate <90, 0, 0>
scale <1, 1, pk_z/pk_x>
}
box {
<-60, -60, -60>
< 0, 0, 60>
}
translate <70, 80, 0>
}
cone {
<0, 0, 0>, 1,
<0, 1, 0>, 1
texture { cone_texture }
scale <20, 10, 20>
rotate <0, 0, 90>
scale < 1, 1, pk_z/pk_x>
translate <80, 40, 0>
}
}
#declare balken =
union {
#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>
}
}
#declare zufuehrung =
union {
cone {
<0, 0, 0>, 1
<0, 4, 0>, 1
texture { cone_texture }
scale <14, 8, 14>
rotate <0, 0, 90>
translate <122, 40, -16>
}
cone {
<0, 0, 0>, 1
<0, 4, 0>, 1
texture { cone_texture }
scale <14, 8, 14>
rotate <0, 0, 90>
translate <122, 40, +16>
}
}
#declare aggregate_block =
union {
// 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>
}
}
#declare metagrav_oben =
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>
}
object {
balken
translate <0, 0, 50>
}
object {
balken
translate <0, 0, 50>
scale <1, 1, -1>
}
object {
zufuehrung
translate <0, 0, 50>
}
object {
zufuehrung
translate <0, 0, 50>
scale <1, 1, -1>
}
object { aggregate_block }
#if (0)
pigment {
checker color White*0.7, color White*0.5
scale 10
}
#else
texture { Ynkelonium_Texture }
#end
}
#declare metagrav_unten =
union {
//bodenplatte
prism {
linear_sweep
linear_spline
-100, 100,
5,
<70, 0>, <80, 20>, <206, 20>, <206, 0>, <70, 0>
rotate <-90, 0, 0>
}
object {
projektorkopf
translate <0, -40, 0>
scale <1, -1, 1>
translate <0, +66, 0>
translate <0, 0, 50>
}
object {
projektorkopf
translate <0, -40, 0>
scale <1, -1, 1>
translate <0, +66, 0>
translate <0, 0, 50>
scale <1, 1, -1>
}
object {
balken
translate <0, 26, 50>
}
object {
balken
translate <0, 26, 50>
scale <1, 1, -1>
}
#declare i = -99;
#while (i <= 99)
#declare j = 81;
#while (j <= 89)
cone {
<j, 20, i>, 1
<j, 46, i>, 1
}
#declare j = j + 4;
#end
#declare i = i + 11;
#end
object {
zufuehrung
translate <0, 20, 50>
}
object {
zufuehrung
translate <0, 20, 50>
scale <1, 1, -1>
}
object { aggregate_block }
#if (0)
pigment {
checker color White*0.7, color White*0.5
scale 10
}
#else
texture { Ynkelonium_Texture }
#end
}