3d/pr/schneller_kreuzer/sonden_hangar.pov

125 lines
2.5 KiB
POVRay

/*
Sondenhangar:
Randbedingungen:
Platz eingeschränkt durch Hangars f. 1-Mann-Jäger. (16 m breit)
sowie Außenhülle (Schräge ca. <18, 4.8> .. <26, 0>)
1 m breiter Gang in der Mitte.
*/
#macro fach (b1, l1, r2)
#local p000 = <-(b1/2-r2), r2, r2>;
#local p001 = <-(b1/2-r2), r2, l1-r2>;
#local p010 = <-(b1/2-r2), b1-r2 r2>;
#local p011 = <-(b1/2-r2), b1-r2 l1-r2>;
#local p100 = <+(b1/2-r2), r2, r2>;
#local p101 = <+(b1/2-r2), r2, l1-r2>;
#local p110 = <+(b1/2-r2), b1-r2 r2>;
#local p111 = <+(b1/2-r2), b1-r2 l1-r2>;
union {
cylinder { p000, p001, r2 }
cylinder { p010, p011, r2 }
cylinder { p100, p101, r2 }
cylinder { p110, p111, r2 }
cylinder { p000, p010, r2 }
cylinder { p001, p011, r2 }
cylinder { p100, p110, r2 }
cylinder { p101, p111, r2 }
cylinder { p000, p100, r2 }
cylinder { p001, p101, r2 }
cylinder { p010, p110, r2 }
cylinder { p011, p111, r2 }
box { p000 - r2, p000 + r2 }
box { p001 - r2, p001 + r2 }
box { p010 - r2, p010 + r2 }
box { p011 - r2, p011 + r2 }
box { p100 - r2, p100 + r2 }
box { p101 - r2, p101 + r2 }
box { p110 - r2, p110 + r2 }
box { p111 - r2, p111 + r2 }
pigment { color Red }
}
#end
#declare sonden_hangar_r =
union {
#local r1 = 13;
#local b1 = 0.5;
#local l1 = 2.0;
#local r2 = 0.01;
#local da = atan2(b1/2, r1) * 2;
#local aa = atan2(1, 1) + da * 1.5;
#while (r1*cos(aa + da/2) > 8.05)
#debug concat("\naa = ", str(aa, 0, 5))
#local hh = 0;
#while (hh < 4.8 - b1)
object {
fach(b1, l1, r2)
translate <0, hh, r1>
rotate <0, degrees(aa), 0>
}
#local hh = hh + b1;
#end
#local aa = aa + da;
#end
#local r1 = 16;
#local b1 = 0.5;
#local r2 = 0.01;
#local da = atan2(b1/2, r1) * 2;
#local aa = atan2(1, 1) + da * 1.5;
#while (r1*cos(aa + da/2) > 8.05)
#debug concat("\naa = ", str(aa, 0, 5))
#local l1 = 5.0;
#local hh = 0;
#while (hh < 3.1 - b1)
object {
fach(b1, l1, r2)
translate <0, hh, r1>
rotate <0, degrees(aa), 0>
}
#local hh = hh + b1;
#end
#local l1 = 2.5;
#while (hh < 4.2 - b1)
object {
fach(b1, l1, r2)
translate <0, hh, r1>
rotate <0, degrees(aa), 0>
}
#local hh = hh + b1;
#end
#local aa = aa + da;
#end
}
#declare sonden_hangar =
union {
object { sonden_hangar_r }
object {
sonden_hangar_r
matrix <0, 0, 1,
0, 1, 0,
1, 0, 0,
0, 0, 0>
}
}