3d/pr/schneller_kreuzer/deck_07.pov

106 lines
1.8 KiB
POVRay

#include "treibstofftank.pov"
#include "andruckabsorber.pov"
#include "hufeisenpult.pov"
#local Z = -20;
#declare deck_07 =
union {
#if (1)
intersection {
union {
difference {
object { huelle }
// Ausschnitte
}
}
box {
<-50, Z+5, -50>
< 50, Z+0, 50>
}
}
#end
difference {
cone {
<0, Z+0.2, 0> sqrt(pow(49,2)-pow((Z+0.2),2)),
<0, Z-0.2, 0> sqrt(pow(49,2)-pow((Z-0.2),2))
texture { T_arkonstahl }
}
// AG
cylinder {
<0, -39, 0> <0, -41, 0> 2
}
// Ausschnitt für Kraftwerke (Deck 5)
difference {
cylinder {
<0, Z-0.3, 0> <0, Z+0.3, 0> 24+5
}
cylinder {
<0, Z-0.3, 0> <0, Z+0.3, 0> 24-5
}
}
#ifdef (SCHNITT_1)
box {
<0, -0.3, 0>
<-50, 0.3, -50>
translate <0, Z, 0>
}
#end
}
#local rr = 24+5.5;
#while (rr < 40.0)
#local da = degrees(asin(0.5/rr))*2;
#local aa = 0;
#while (aa <= 360 - da)
#local ss = 1;
#ifdef (SCHNITT_1)
#local pp = vrotate(<rr, 0, 0>, <0, aa, 0>);
#if (pp.x < 0 & pp.z < 0)
#local ss = 0;
#end
#end
#if (ss)
object {
treibstofftank
translate <rr, Z+0.2, 0>
rotate <0, aa, 0>
}
#end
#local aa = aa + da;
#end
#local rr = rr + 1.0;
#end
object {
andruckabsorber
translate <0, Z+0.2, 0>
}
#local a = 10;
#while (a < 360)
union {
#local rr = sqrt(pow(49,2)-pow((Z+2.5),2));
sphere { <rr, Z+2.5, 0>, 2 }
difference {
cone {
<rr, Z+2.5, 0>, 0.3
<50.0, Z+1.0, 0>, 0.2
}
cone {
<rr, Z+2.5, 0>, 0.2
<50.1, Z+1.0, 0>, 0.15
}
}
object {
hufeisenpult
translate <rr-3.0, Z+0.2, 0>
}
texture { T_arkonstahl }
rotate <0, a, 0>
}
#local a = a + 60;
#end
}