3d/pr/schneller_kreuzer/deck_05.pov

144 lines
2.4 KiB
POVRay

#include "treibstofftank.pov"
#include "speicherbank.pov"
#include "kraftwerk.pov"
#local Z = -30;
#declare deck_05 =
union {
#if (1)
intersection {
union {
difference {
object { huelle }
// Ausschnitte
}
}
box {
<-50, -25, -50>
< 50, -30, 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 }
}
// Ausschnitt f. Landestützen
#local aa = 0;
#while (aa < 360 )
union {
cone {
<20, Z-0.3, 0>, 2
<20, Z+0.3, 0>, 2
}
box {
<20, Z-0.3, -2>
<28, Z+0.3, +2>
}
cone {
<28, Z-0.3, 0>, 2
<28, Z+0.3, 0>, 2
}
texture { T_arkonstahl }
rotate <0, aa, 0>
}
#local aa = aa + 30;
#end
#if (SCHNITT_1)
intersection {
torus {
23, 23
}
plane {
<0, 0, -1> 0
rotate <0, 45, 0>
}
plane {
<0, 0, +1> 0
rotate <0, -45, 0>
}
rotate <0, 135, 0>
translate <0, Z, 0>
}
#end
}
#if (1)
// Treibstofftanks
#local rr = 30.5;
#while (rr < 38.0)
#local da = degrees(asin(0.5/rr))*2;
#local da = 360 / int(360 / da);
#local aa = 0;
#while (aa <= 360 - da)
#local ss = 1;
#if (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
#end
// Kraftwerke
#local rr = 24;
#local da = 30;
#local aa = da/2;
#while (aa <= 360 - da)
#local ss = 1;
#if (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 {
turm
translate <rr, (Z+0.2), 0>
rotate <0, aa, 0>
}
#end
#local aa = aa + da;
#end
// Speicherbänke
#local da = 60;
#local aa = 0;
#while (aa <= 360 - da)
#local ss = 1;
#if (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 {
speicherbank
translate <5, (Z+0.2), 0>
rotate <0, aa, 0>
}
#end
#local aa = aa + da;
#end
}