3d/pr/schneller_kreuzer/polgeschuetz.pov

281 lines
4.9 KiB
POVRay

#include "T_arkonstahl.pov"
#include "T_BlackMetal.pov"
#include "hufeisenpult.pov"
// Leitungsbündel aus 3^lv Leitungen mit Durchmesser r2.
// 45°-Bogen um <+r1,h,0>
#macro lb(h,r1, r2, lv)
intersection {
torus {
r1, r2
}
plane {
<-1, 0, 0> 0
rotate <0, 0, 0>
}
plane {
<0, 0, -1> 0
rotate <0, 22.5-(lv-1), 0>
}
plane {
<0, 0, +1> 0
rotate <0, -(22.5-(lv-1)), 0>
}
pigment {color <0.99/lv, 0.1, 0.5/lv>}
finish {phong 1.0}
translate <0, h, 0>
}
#if (lv > 1)
lb(h+0.55*r2, r1, r2*0.4, lv-1)
lb(h-0.55*r2*sin(radians(30)), r1-0.55*r2*cos(radians(30)), r2*0.4, lv-1)
lb(h-0.55*r2*sin(radians(30)), r1+0.55*r2*cos(radians(30)), r2*0.4, lv-1)
#end
#end
#declare polgeschuetz =
union {
union {
cylinder {
<0, 45.2, 0> <0, 46.2, 0>, 4.5
}
cone {
<0, 46.2, 0>, 4.5
<0, 47.7, 0>, 4.9
}
pigment {
radial
color_map{
[0.1 rgb 0.1 ]
[0.1 White]
}
frequency 16
}
}
cylinder {
<0, 47.7, 0> <0, 50.0, 0>, 5
texture { T_BlackMetal }
}
difference {
sphere { <0, 0, 0>, 4.8 }
merge {
box {
<0, +0.3, -0.6>
<5, 5, +0.6>
}
cylinder {
<0, 0, 0> <0, 5, 0> 0.6
}
cylinder {
<0, +0.3, 0> <5, +0.3, 0> 0.6
}
intersection {
difference {
cylinder {
<0, 0, -1.0> <0, 0, +1.0> 5.0
}
cylinder {
<0, 0, -1.1> <0, 0, +1.1> 4.5
}
}
box {
<-1.0, 0.0, -1.1>
<+5.0, 5.0, +1.1>
}
}
cylinder {
<0, -0.3, 0> <5, -0.3, 0> 0.4
}
rotate <0, 0, 10>
rotate <0, +90, 0>
}
texture { T_arkonstahl }
translate <0, 50, 0>
}
union {
union {
difference {
union {
cone {
<0, 0.3, 0>, 0.6,
<0, 0.3, 10>, 0.5
}
cone {
<0, 0.3, 10> 0.5
<0, 0.3, 9> 0.6
}
cone {
<0, 0.3, 8.5> 0.5
<0, 0.3, 9> 0.6
}
}
cone {
<0, 0.3, 0>, 0.4,
<0, 0.3, 10.1>, 0.4
texture {
pigment {
color rgb 0.1
}
}
}
}
difference {
cone {
<0, -0.3, 0>, 0.4,
<0, -0.3, 8>, 0.4
}
cone {
<0, 0, 0>, 0.6,
<0, 0, 1>, 0.6
rotate <45, 0, 0>
translate <0, -0.3, 8>
}
}
texture {
pigment {color <0.7, 0.7, 1.0>}
finish {phong 1.0}
}
}
#declare i=5.5;
#while (i < 8.5)
torus {
0.5, 0.09
rotate <90, 0, 0>
translate <0, 0.3, i>
texture { T_BlackMetal }
}
#declare i = i + 0.2;
#end
superellipsoid {
<0.25, 0.25>
scale <1, 0.5, 0.5>
translate <0, 0.5, 5>
texture {
pigment {color <0.7, 0.7, 1.0>}
finish {phong 1.0}
}
}
superellipsoid {
<0.25, 0.25>
scale <0.5, 0.5, 0.2>
translate <0.9, 0.7, 5.5>
texture {
pigment {color <0.7, 0.7, 1.0>}
finish {phong 1.0}
}
}
superellipsoid {
<0.25, 0.25>
scale <0.5, 0.5, 0.2>
translate <-0.9, 0.7, 5.5>
texture {
pigment {color <0.7, 0.7, 1.0>}
finish {phong 1.0}
}
}
superellipsoid {
<0.25, 0.25>
scale <0.4, 0.4, 0.1>
translate <0.9, 0.7, 5.7>
texture {
pigment {color <0.3, 0.1, 0.2>}
finish {phong 1.0}
}
}
superellipsoid {
<0.25, 0.25>
scale <0.4, 0.4, 0.1>
translate <-0.9, 0.7, 5.7>
texture {
pigment {color <0.3, 0.1, 0.2>}
finish {phong 1.0}
}
}
rotate <0, 180, 0>
rotate <45, 0, 0>
translate <0, 50, 0>
}
object {
hufeisenpult
translate <-5.3, 0, 0>
rotate <0, -90, 0>
translate <0, 45.2, 0>
}
#local ii = 0;
#while (ii < 6)
union {
torus {
0.2 0.1
rotate <0, 0, 90>
translate <4.5, 45.5, 0>
}
cylinder {
<4.5, 45.5, 0>
<7, 45.5, 0> 0.2
}
torus {
0.2 0.1
rotate <0, 0, 90>
translate <7, 45.5, 0>
}
prism {
linear_sweep
linear_spline
-1 // min y
1 // max y
6 // nr points
<7, 45.2> <7, 46.2> <8, 47.2> <10, 46.9>
<10, 45.2> <7, 45.2>
rotate <-90, 0, 0>
}
intersection {
torus {
9, .8
}
plane {
<0, 0, -1> 0
rotate <0, 10, 0>
}
plane {
<0, 0, +1> 0
rotate <0, -10, 0>
}
pigment {color <0.3, 0.1, 0.5>}
finish {phong 1.0}
translate <0, 46.1, 0>
}
sphere {
<0, 0, 0> .8
pigment {color <0.3, 0.1, 0.5>}
finish {phong 1.0}
translate <9, 46.1, 0>
rotate <0, 10, 0>
}
sphere {
<0, 0, 0> .8
pigment {color <0.3, 0.1, 0.5>}
finish {phong 1.0}
translate <9, 46.1, 0>
rotate <0, -10, 0>
}
#local h = 46.1;
#local r1 = 9;
#local r2 = .8;
#local lv = 3;
lb(h+0.55*r2, r1, r2*0.4, lv-1)
lb(h-0.55*r2*sin(radians(30)), r1-0.55*r2*cos(radians(30)), r2*0.4, lv-1)
lb(h-0.55*r2*sin(radians(30)), r1+0.55*r2*cos(radians(30)), r2*0.4, lv-1)
texture {
pigment {color <0.3, 0.1, 0.2>}
finish {phong 1.0}
}
rotate <0, ii * 45 + 22.5 + 180, 0>
}
#local ii = ii + 1;
#end
}