3d/pr/manoever/KR200.INC

1196 lines
24 KiB
Plaintext

// Persistence of Vision Ray Tracer Include File
// POV-Ray 3.0
// File: KR200.inc
// Vers: 1.1
// Desc: Kugelraumer 200m Durchmesser
// Schwerer Kreuzer der TERRA-Klasse
// Date: 20.01.97
// Auth: Harald Ottacher
// email: ottacher@iwf.tu-graz.ac.at
//
////////////////////////////////////////////////////
#declare _MAT_gif = "KRPL200.GIF"
#declare _M_ANGL = 0.0;
#declare _FENSTER_R = 100;
//#declare _STUETZE = 1; // wenn deklariert dann sind
// die Landstützen ausgefahren
//#declare _NO_F_LIGHT = 1; // wenn deklariert dann sind
// die Fenster dunkel
//#declare _NO_K_LIGHT = 1; // wenn deklariert dann sind
// Beobachtungskuppel dunkel
#include "KRMAT.INC"
////////////////////////////////////////////////////
// Kugelraumer 200 Meter
#declare R = 100.0; // Kugelradius
#declare wr = 15.0; // Wulstradius
// Fenster
#declare F_O1 =
union {
superellipsoid { < 0.5, 0.5 >
scale < R+5, 0.8, 0.65 >
translate < 0, 0, -1.35 >
}
superellipsoid { < 0.5, 0.5 >
scale < R+5, 0.8, 0.65 >
translate < 0, 0, 1.35 >
}
texture { TERKONIT }
}
#declare Count = 0;
#declare F_OR =
union {
// OBEN 1
#while (Count < 180)
union {
object {
F_O1
rotate < 0, Count-2.5, 0 >
}
object {
F_O1
rotate < 0, Count+2.5, 0 >
}
translate < 0, 70, 0 > // oben 1
}
#declare Count=Count+20; //18
#end
// OBEN 2
#declare Count = 0;
#while (Count < 180)
union {
object {
F_O1
rotate < 0, Count-2.1, 0 >
}
object {
F_O1
rotate < 0, Count+2.1, 0 >
}
translate < 0, 52, 0 > // oben 2
}
#declare Count=Count+18; //15
#end
// OBEN 3
#declare Count = 36;
#while (Count < 325)
union {
object {
F_O1
scale < 0.5, 1, 1 >
translate < -R, 0, 0 >
rotate < 0, Count-2.1, 0 >
}
object {
F_O1
scale < 0.5, 1, 1 >
translate < -R, 0, 0 >
rotate < 0, Count+2.1, 0 >
}
translate < 0, 35, 0 > //oben 3
}
#declare Count=Count+12;
#end
// UNTEN 1
#declare Count = 0;
#while (Count < 180)
union {
object {
F_O1
rotate < 0, Count-2.1, 0 >
}
object {
F_O1
rotate < 0, Count+2.1, 0 >
}
translate < 0, -54, 0 > // unten 1
}
#declare Count=Count+18; //15
#end
// UNTEN 2
#declare Count = 0;
#while (Count < 180)
union {
object {
F_O1
rotate < 0, Count-2.5, 0 >
}
object {
F_O1
rotate < 0, Count+2.5, 0 >
}
translate < 0, -72, 0 > // unten 2
}
#declare Count=Count+20; //18
#end
} // end union
#declare FENSTER =
difference {
object { F_OR }
sphere { <0, 0, 0>, R-0.3
hollow
texture {
_T_FENSTER
//pigment { Yellow }
}
}
} // end difference
//----- Hangar Textur
#declare Mannschl =
texture {
pigment {
image_map {
gif "MANNS.GIF"
interpolate 4 // 4=normalized distance
filter 5 1.0
once
}
translate < -0.5, -0.5, 0 >
scale < 5, 2.5 , 1 >
rotate < 0, 90, 0 >
} // end pigment
} // end texture
#declare Hangar_B =
texture {
pigment {
image_map {
gif "HB200.GIF"
interpolate 4 // 4=normalized distance
filter 5 1.0
once
}
translate < -0.5, -0.5, 0 >
scale < 16, 9 , 1 >
rotate < 0, 90 ,0 >
} // end pigment
} // end texture
#declare Hangar_KRO =
texture {
pigment {
image_map {
gif "HGRO200.GIF"
interpolate 4 // 4=normalized distance
filter 5 1.0
once
}
translate < -0.5, -0.5, 0 >
scale < 18, 9 , 1 >
rotate < 0, 90 ,0 >
} // end pigment
} // end texture
#declare Hangar_KRU =
texture {
pigment {
image_map {
gif "HGRU200.GIF"
interpolate 4 // 4=normalized distance
filter 5 1.0
once
}
translate < -0.5, -0.5, 0 >
scale < 16, 8 , 1 >
rotate < 0, 90 ,0 >
} // end pigment
} // end texture
#declare Hangar_SJ =
texture {
pigment {
image_map {
png "HGSJ200.png"
interpolate 4 // 4=normalized distance
once
}
translate < -0.5, -0.5, 0 >
scale < 35, 26, 1 >
rotate < 0, 90 ,0 >
} // end pigment
} // end texture
//----- Hangar Tore
#declare norm_msl_h = 16.25; // Höhe Mannschl normal
#declare zus_msl_h = 45; // Höhe Mannschl zusätzlich
#declare sjh_h = 28; // Höhe SJ-Hangar
#declare hgkr_ob = 60; // Höhe Hangarkreis oben
#declare hgkr_ut = -35; // Höhe Hangarkreis unten
#declare hgb_h = -85; // Höhe Bodenhangar
#declare Count = 45;
#declare MANNSCHL =
union {
#while (Count < 360)
intersection {
sphere { <0, 0, 0>, R-0.5 }
box { <-1, -1, -1>, < -0.2, 1, 1>
scale < R+5, 1.25, 2.5 >
translate < 0, norm_msl_h, 0 >
}
texture { TERKONIT }
texture {
Mannschl
translate < 0, norm_msl_h, 0 >
}
rotate < 0, Count ,0 >
} // end intersection
#declare Count=Count+45;
#end
intersection {
sphere { <0, 0, 0>, R-0.5 }
box { <-1, -1, -1>, < -0.2, 1, 1>
scale < R+5, 1.25, 2.5 >
translate < 0, zus_msl_h, 0 >
}
texture { TERKONIT }
texture {
Mannschl
translate < 0, zus_msl_h, 0 >
} // end texture
} // end intersection
} // end Union
#declare Count = 0;
#declare HANGAR_B =
union {
#while (Count < 360)
intersection {
sphere { <0, 0, 0>, R-1.0 }
box { <-1, -1, -1>, < -0.2, 1, 1>
scale < R+5, 5, 13 >
translate < 0, hgb_h, 0 >
}
texture { TERKONIT }
texture {
Hangar_B
translate < 0, hgb_h, 0 >
} // end texture
rotate < 0, Count ,0 >
} // end intersection
#declare Count=Count+180;
#end
} // end union
#declare Count = 0;
#declare HANGARKR_OB =
union {
#while (Count < 360)
intersection {
sphere { <0, 0, 0>, R-1.0 }
box { <-1, -1, -1>, < -0.2, 1, 1>
scale < R+5, 5, 20 >
translate < 0, hgkr_ob, 0 >
}
texture { TERKONIT }
texture {
Hangar_KRO
translate < 0, hgkr_ob, 0 >
} // end texture
rotate < 0, Count ,0 >
} // end intersection
#declare Count=Count+60;
#end
} // end union
#declare Count = 0;
#declare HANGARKR_UT =
union {
#while (Count < 360)
intersection {
sphere { <0, 0, 0>, R-1.0 }
box { <-1, -1, -1>, < -0.2, 1, 1>
scale < R+5, 5, 15 >
translate < 0, hgkr_ut, 0 >
}
texture { TERKONIT }
texture {
Hangar_KRU
translate < 0, hgkr_ut, 0 >
} // end texture
rotate < 0, Count ,0 >
} // end intersection
#declare Count=Count+45;
#end
} // end union
#declare HANGAR_SJ =
intersection {
sphere { <0, 0, 0>, R-1.0 }
box { <-1, -1, -1>, < 0, 1, 1>
scale < R+5, 15, 20 >
translate < 0, sjh_h, 0 >
}
texture { TERKONIT }
texture {
Hangar_SJ
translate < 0, sjh_h, 0 >
} // end texture
} // end intersection
//----- Hangar Ausschnitte
#declare Count = 45;
#declare _MANNSCHL =
union {
#while (Count < 360)
superellipsoid { < 0.2, 0.2 >
scale < R/2+5, 1.25, 2.5 >
translate < -R/2, 0, 0 >
rotate < 0, Count ,0 >
translate < 0, norm_msl_h, 0 >
}
#declare Count=Count+45;
#end
superellipsoid { < 0.2, 0.2 >
scale < R/2+5, 1.25, 2.5 >
translate < -R/2, 0, 0 >
translate < 0, zus_msl_h, 0 >
}
texture { TERKONIT }
} // end union
// Hangar Boden
#declare _HANGAR_B =
object {
superellipsoid { < 0.2, 0.2 >
scale < R, 4.5, 12 >
translate < 0, hgb_h, 0 >
}
texture { TERKONIT }
} // end object
// oberer Hangarkreis
#declare Count = 0;
#declare _HANGARKR_OB =
union {
#while (Count < 180)
superellipsoid { < 0.2, 0.2 >
scale < R, 4.5, 18 >
rotate < 0, Count ,0 >
translate < 0, hgkr_ob, 0 >
}
#declare Count=Count+60;
#end
texture { TERKONIT }
} // end union
// unterer Hangarkreis
#declare Count = 0;
#declare _HANGARKR_UT =
union {
#while (Count < 180)
superellipsoid { < 0.2, 0.2 >
scale < R, 4, 13 >
rotate < 0, Count ,0 >
translate < 0, hgkr_ut, 0 >
}
#declare Count=Count+45;
#end
texture { TERKONIT }
} // end union
// SJ Hangar
#declare _HANGAR_SJ =
superellipsoid { < 0.2, 0.2 >
scale < 50, 13, 19 >
translate < -60, 0, 0 >
translate < 0, sjh_h, 0 >
texture { TERKONIT }
}
#declare SCHALE =
object {
difference {
sphere { <0, 0, 0> R
}
object { _MANNSCHL } // Mann Schleuse
object { _HANGARKR_OB } // Hangarkreis oben
object { _HANGAR_SJ } // Hangar für Space Jet
object { _HANGARKR_UT } // Hangarkreis unten
object { _HANGAR_B } // Hangar Boden
object { FENSTER }
}
} // end object
//---------------------------------------------------
// Ringwulst
#declare DUESE =
object {
union {
quadric {
<1, 0, 1>,
<0, 0, 0>,
<0, -1, 0>, 0
}
cylinder {
< 0, 0.3, 0 >,
< 0, -0.2, 0 >,
0.3
}
}
scale 2.5
texture { TERKONIT
finish {
ambient 0.05
diffuse 0.7
reflection 0.5
}
}
} // end obj
#declare r1 = 7.25; // Düsenentfernung
#declare dsk = 45; // Düsenwinkel
#declare WULST =
object {
difference {
union {
torus { R, wr }
cylinder { -wr*y , wr*y, R }
}
#declare Count = 10;
#while (Count < 360)
#declare X=(r1*cos(radians( dsk ))+R)*sin(radians( Count ));
#declare Z=(r1*cos(radians( dsk ))+R)*cos(radians( Count ));
#declare Y=r1*sin(radians( dsk ));
object {
DUESE
rotate < dsk, 0, 0 >
rotate < 0, Count, 0 >
translate < X, Y, Z, >
}
#declare Count=Count+20;
#end
#declare Count = 10;
#while (Count < 360)
#declare X=(r1*cos(radians( -dsk ))+R)*sin(radians( Count ));
#declare Z=(r1*cos(radians( -dsk ))+R)*cos(radians( Count ));
#declare Y=r1*sin(radians( -dsk ));
object {
DUESE
rotate <180-dsk, 0, 0 >
rotate < 0, Count, 0 >
translate < X, Y, Z, >
}
#declare Count=Count+20;
#end
}
} // end object
//---------------------------------------------------
// Geschützkuppeln
#declare GSROHR =
lathe {
linear_spline
16,
<0, 0>,
<0.1, 0>,
<0.10, 1.03>, <0.15, 1.03>, <0.15, 1.05>, <0.10, 1.05>,
<0.10, 1.07>, <0.15, 1.07>, <0.15, 1.09>, <0.10, 1.09>,
<0.10, 1.11>, <0.15, 1.11>, <0.11, 1.25>, <0.08, 1.25>, <0.08, 1.0>,
<0, 1.0>
texture { TERKONIT
}
} // end lathe
#declare POLGSROHR =
union {
object { GSROHR }
cylinder {
< 0.1, 0, 0 >
< 0.1, 1.0, 0 >, 0.05
}
cylinder {
< -0.1, 0, 0 >
< -0.1, 1.0, 0 >, 0.05
}
cylinder {
< 0, 0, 0.1 >
< 0, 1.0, 0.1 >, 0.05
}
cylinder {
< 0, 0, -0.1 >
< 0, 1.0, -0.1 >, 0.05
}
texture { TERKONIT }
scale 0.8
} // end union
#declare GSKUPPEL_1 =
object {
union {
sphere {
< 0, 0, 0 >, 1
texture { TERKONIT }
scale < 1, 0.75, 1 >
}
object { GSROHR
scale 0.85
}
}
scale 4
} // end obj
#declare GSKUPPEL_2 =
object {
union {
sphere {
< 0, 0, 0 >, 1
texture { TERKONIT }
scale < 1, 0.75, 1 >
}
object { GSROHR
scale 0.85
}
}
scale 5
} // end obj
#declare GSKUPPEL_3 =
object {
union {
sphere {
< 0, 0, 0 >, 1
texture { TERKONIT }
scale < 1, 0.70, 1 >
}
object { POLGSROHR
scale 1.0
}
}
scale 5
} // end obj
#declare rgs = R - 1.5; // Radius Polgeschütz
#declare GSKP =
union {
sphere { < 0, 0, 0 >, 1
texture { TERKONIT }
scale <1, 0.5, 1>
}
union {
object {
POLGSROHR
translate < 0.2, 0, 0 >
}
object {
POLGSROHR
translate < -0.2, 0, 0 >
}
rotate < -40, 0, 0 >
}
scale 8
translate rgs*y
rotate < 0, 20, 0>
}
#declare rgs = R - 1.0; // Radius Geschütz
#declare Count = 0;
#declare wgsk = 50; // Gesützkreiswinkel
#declare GSKR1 =
union{
#while (Count < 360)
#declare X=rgs*sin(radians( Count ))*cos(radians( wgsk ));
#declare Z=rgs*cos(radians( Count ))*cos(radians( wgsk ));
#declare Y=rgs*sin(radians( wgsk ));
object {
GSKUPPEL_1
rotate < 90-wgsk, 0, 0 >
rotate < 0, Count, 0 >
translate < X, Y, Z >
}
#declare Count=Count+45;
#end
}
#declare Count = 15;
#declare wgsk = 27; // Gesützkreiswinkel
#declare GSKR2 =
union{
#declare Y=rgs*sin(radians( wgsk ));
#while (Count < 360)
#declare X=rgs*sin(radians( Count ))*cos(radians( wgsk ));
#declare Z=rgs*cos(radians( Count ))*cos(radians( wgsk ));
object {
GSKUPPEL_3
rotate < 90-wgsk, 0, 0 >
rotate < 0, Count, 0 >
translate < X, Y, Z >
}
#declare Count=Count+30;
#declare X=rgs*sin(radians( Count ))*cos(radians( wgsk ));
#declare Z=rgs*cos(radians( Count ))*cos(radians( wgsk ));
object {
GSKUPPEL_2
rotate < 90-wgsk, 0, 0 >
rotate < 0, Count, 0 >
translate < X, Y, Z >
}
#declare Count=Count+30;
#declare X=rgs*sin(radians( Count ))*cos(radians( wgsk ));
#declare Z=rgs*cos(radians( Count ))*cos(radians( wgsk ));
object {
GSKUPPEL_2
rotate < 90-wgsk, 0, 0 >
rotate < 0, Count, 0 >
translate < X, Y, Z >
}
#declare Count=Count+30;
#end
}
#declare Count = 15;
#declare wgsk = -27; // Gesützkreiswinkel
#declare GSKR3 =
union{
#declare Y=rgs*sin(radians( wgsk ));
#while (Count < 360)
#declare X=rgs*sin(radians( Count ))*cos(radians( wgsk ));
#declare Z=rgs*cos(radians( Count ))*cos(radians( wgsk ));
object {
GSKUPPEL_3
rotate < 90-wgsk, 0, 0 >
rotate < 0, Count, 0 >
translate < X, Y, Z >
}
#declare Count=Count+30;
#declare X=rgs*sin(radians( Count ))*cos(radians( wgsk ));
#declare Z=rgs*cos(radians( Count ))*cos(radians( wgsk ));
object {
GSKUPPEL_2
rotate < 90-wgsk, 0, 0 >
rotate < 0, Count, 0 >
translate < X, Y, Z >
}
#declare Count=Count+30;
#declare X=rgs*sin(radians( Count ))*cos(radians( wgsk ));
#declare Z=rgs*cos(radians( Count ))*cos(radians( wgsk ));
object {
GSKUPPEL_2
rotate < 90-wgsk, 0, 0 >
rotate < 0, Count, 0 >
translate < X, Y, Z >
}
#declare Count=Count+30;
#end
}
#declare Count = 0;
#declare wgsk = -50; // Gesützkreiswinkel
#declare GSKR4 =
union{
#while (Count < 360)
#declare X=rgs*sin(radians( Count ))*cos(radians( wgsk ));
#declare Z=rgs*cos(radians( Count ))*cos(radians( wgsk ));
#declare Y=rgs*sin(radians( wgsk ));
object {
GSKUPPEL_1
rotate < 90-wgsk, 0, 0 >
rotate < 0, Count, 0 >
translate < X, Y, Z >
}
#declare Count=Count+45;
#end
}
//---------------------------------------------------
// Schutzschirmprojektor
#declare SSPROJ =
union {
cylinder {
< -1.0 0, 0 >,
< 1.0, 0, 0 >,
0.2
}
sphere {
< 0.0, 0, 0 >, 1.0
scale < 0.5, 0.25, 0.3 >
translate < -1, 0, 0>
}
sphere {
< 0.0, 0.0, 0 >, 1.0
scale < 0.55, 0.3, 0.35 >
}
sphere {
< 0.0, 0.0, 0 >, 1.0
scale < 0.5, 0.25, 0.3 >
translate < 1, 0, 0>
}
texture { TERKONIT }
}
#declare rgs = R - 1; // Radius Schutzschirmprojektor
#declare Count = 22.5;
#declare wgsk = 50; // Winkel SSprojektorkreis
#declare SSKR1 =
union{
#while (Count < 360)
#declare X=rgs*sin(radians( Count ))*cos(radians( wgsk ));
#declare Z=rgs*cos(radians( Count ))*cos(radians( wgsk ));
#declare Y=rgs*sin(radians( wgsk ));
object {
SSPROJ
scale 6
rotate < 90-wgsk, 0, 0 >
rotate < 0, Count, 0 >
translate < X, Y, Z >
}
#declare Count=Count+45;
#end
}
#declare Count = 22.5;
#declare wgsk = -50; // Winkel SSprojektorkreis
#declare SSKR2 =
union{
#while (Count < 360)
#declare X=rgs*sin(radians( Count ))*cos(radians( wgsk ));
#declare Z=rgs*cos(radians( Count ))*cos(radians( wgsk ));
#declare Y=rgs*sin(radians( wgsk ));
object {
SSPROJ
scale 6
rotate < 90-wgsk, 0, 0 >
rotate < 0, Count, 0 >
translate < X, Y, Z >
}
#declare Count=Count+45;
#end
}
//---------------------------------------------------
// Landeteller und Landestützen
#declare wldst = 15;
#declare LDST =
union{
cylinder {
< 0, 0.0, 0 >, < 0, -18.0, 0 >, 3
}
cylinder {
< 0, -18.0, 0 >, < 0, -36.0, 0 >, 2.5
}
cylinder {
< 0, -36.0, 0 >, < 0, -53.0, 0 >, 2
}
union {
difference {
sphere { < 0, 0, 0 >, 2.5
}
cylinder {
< 0, -0.1, 0 >, < 0, -2.7, 0 >, 2.7
}
}
cylinder {
< 0, 0.0, 0 >, < 0, -1.5, 0 >, 6.0
}
rotate < 0, 0, -wldst >
translate < 0, -53.0, 0 >
}
rotate < 0, 0, wldst >
}
#declare Count = 15;
#declare wltk = -40;
#declare rlt = R - 1;
#ifdef (_STUETZE)
#declare LTKR =
union{
#while (Count < 360)
#declare X=rlt*sin(radians( Count ))*cos(radians( wltk ));
#declare Z=rlt*cos(radians( Count ))*cos(radians( wltk ));
#declare Y=rlt*sin(radians( wltk ));
object {
LDST
rotate < 0, -90, 0 >
rotate < 0, Count, 0 >
translate < X, Y, Z >
}
#declare Count=Count+30;
#end
texture { TERKONIT }
}
#else
#declare LTKR =
union{
#while (Count < 360)
#declare X=rlt*sin(radians( Count ))*cos(radians( wltk ));
#declare Z=rlt*cos(radians( Count ))*cos(radians( wltk ));
#declare Y=rlt*sin(radians( wltk ));
cylinder {
< 0, 1.0, 0 >
< 0, 0, 0 >, 6
rotate < 90-wltk, 0, 0 >
rotate < 0, Count, 0 >
translate < X, Y, Z >
}
#declare Count=Count+30;
#end
texture { TERKONIT }
}
#end
//---------------------------------------------------
// Orter
#declare _ORTER_1 =
lathe {
cubic_spline
15,
<0, 0>,
<0, 0>,
<2.0, 0.0>,<1.0, 0.5>,<0.8, 0.9>, <1.0, 1.0>,
<1.250, 1.000>,<1.427, 1.073>,<1.500, 1.250>,<1.427, 1.427>,
<1.250, 1.500>, <0.5, 1.500>, < 0.177, 1.677 >
<0, 1.75>,
<0, 1.75>
texture { TERKONIT }
}
#declare _O_STAB =
union {
cylinder {
< 0, 0, 0 >,
< 0, 2.0, 0 >,
0.15
}
sphere {
< 0, 2.0, 0 >,
0.2
}
}
#declare _ORTER_2 =
union {
sphere {
< 0, 0.0, 0 >,
1.0
scale < 1.0, 0.5, 1.0 >
}
cylinder {
< 0, 0, 0 >,
< 0, 1.0, 0 >,
0.5
}
sphere {
< 0, 1.0, 0 >,
0.5
}
sphere {
< 0.0, 0.0, 0 >,
0.5
scale < 0.5, 1, 1 >
translate < 0.5, 1.0, 0 >
}
sphere {
< 0.0, 0.0, 0 >,
0.5
scale < 0.5, 1, 1 >
translate < -0.5, 1.0, 0 >
}
sphere {
< 0.0, 0.0, 0 >,
0.5
scale < 1, 1, 0.5 >
translate < 0, 1.0, 0.5 >
}
sphere {
< 0.0, 0.0, 0 >,
0.5
scale < 1, 1, 0.5 >
translate < 0, 1.0, -0.5 >
}
cylinder {
< 0, 1.5, 0 >,
< 0, 2.2, 0 >,
0.2
}
lathe {
cubic_spline
13,
<0, 0>,
<0, 0>,
<0.283, 0.117>, <0.400, 0.400>,
<0.41, 0.40>, <0.90, 0.40>,
<0.935, 0.415>, <1.000, 0.45>,<0.935, 0.485>,
<0.90, 0.50>, <0.50, 0.55>,
<0, 0.55>,
<0, 0.55>
scale < 1.5, 1, 0.5 >
rotate < 60, 0, 0>
translate < 0, 2.1, 0 >
}
texture { TERKONIT }
}
#declare wank = 69;
#declare rank = R-0.4;
#declare Y=rank*sin(radians( wank ));
#declare ORTER =
union {
#declare X=rank*sin(radians( 0 ))*cos(radians( wank ));
#declare Z=rank*cos(radians( 0 ))*cos(radians( wank ));
object {
_ORTER_2
scale 2
//rotate < 0, 0, 0 >
translate < X, Y-0.5, Z >
}
#declare X=rank*sin(radians( 180 ))*cos(radians( wank ));
#declare Z=rank*cos(radians( 180 ))*cos(radians( wank ));
object {
_ORTER_2
scale 2
rotate < 0, 180, 0 >
translate < X, Y-0.5, Z >
}
#declare X=rank*sin(radians( 90 ))*cos(radians( wank ));
#declare Z=rank*cos(radians( 90 ))*cos(radians( wank ));
object {
_ORTER_1
scale 2
rotate < 90-wank, 0, 0 >
rotate < 0, 90, 0 >
translate < X, Y, Z >
}
#declare X=rank*sin(radians( 270 ))*cos(radians( wank ));
#declare Z=rank*cos(radians( 270 ))*cos(radians( wank ));
object {
_ORTER_1
scale 2
rotate < 90-wank, 0, 0 >
rotate < 0, 270, 0 >
translate < X, Y, Z >
}
} // end union
//---------------------------------------------------
// Antennen
#declare _ANTENNE_1 =
lathe {
cubic_spline
17,
<0.0, 0>,
<0.0, 0>,
<1.0, 0.0>,<0.4, 1.29>,
<0.4, 1.300>,<0.541, 1.359>,<0.600, 1.500>,<0.541, 1.641>,
<0.4, 1.7>,<0.4, 1.89>,
<0.410, 1.900>, <0.495, 1.976>, <0.700, 2.400>, <0.495, 2.824>, <0.100, 2.999>,
<0, 3.0>,
<0, 3.0>
texture { TERKONIT }
}
#declare _A_STAB_1 =
union {
cylinder {
< 0, 0, 0 >,
< 0, 3.0, 0 >,
0.4
}
sphere {
< 0, 3.0, 0 >,
0.45
}
}
#declare _ANTENNE_2 =
union {
object {
_A_STAB_1
translate < 0.0, 0.0, 0.0 >
}
object {
_A_STAB_1
translate < -1.2, -0.6, -1.2 >
}
object {
_A_STAB_1
translate < -1.2, -1.4, 1.2 >
}
object {
_A_STAB_1
translate < 1.2, -1.3, 1.2 >
}
object {
_A_STAB_1
translate < 1.2, -0.5, -1.2 >
}
sphere {
< 0, 0.0, 0 >,
1.0
scale < 4.0, 2.0, 4.0 >
rotate < 90-wank, 0, 0 >
translate < 0, -0.9, -0.9>
}
texture { TERKONIT }
}
#declare _A_STAB =
union {
cylinder {
< 0, 0, 0 >,
< 0, 2.0, 0 >,
0.15
}
sphere {
< 0, 2.0, 0 >,
0.2
}
}
#declare _ANTENNE_3 =
union {
lathe {
cubic_spline
25,
<0, 0>,
<0, 0>,
<1.50, 0.00>, <0.76, 0.80>,
<0.800, 0.800>, <1.141, 0.859>, <1.200, 1.000>, <1.141, 1.141>, <0.700, 1.200>,
<0.64, 1.20>, <0.47, 1.80>,
<0.500, 1.800>, <0.641, 1.859>, <0.700, 2.000>, <0.641, 2.141>, <0.400, 2.200>,
<0.35, 2.20>,<0.20, 2.70>,
<0.210, 2.700>, <0.212, 2.788>, <0.300, 3.000>, <0.212, 3.212>, <0.05, 3.299>,
<0, 3.3>,
<0, 3.3>
}
object {
_A_STAB
rotate < 0, 0, -10 >
translate < 1.0, 0, 0 >
}
object {
_A_STAB
rotate < 0, 0, 10 >
translate < -1.0, 0, 0 >
}
object {
_A_STAB
rotate < 10, 0, 0 >
translate < 0, 0, 1.0 >
}
object {
_A_STAB
rotate < -10, 0, 0 >
translate < 0, 0, -1.0 >
}
texture { TERKONIT }
}
#declare Y=rank*sin(radians( wank ));
#declare ANTENNE =
union {
#declare X=rank*sin(radians( 45 ))*cos(radians( wank ));
#declare Z=rank*cos(radians( 45 ))*cos(radians( wank ));
object {
_ANTENNE_1
scale 2
translate < X, Y-0.5, Z >
}
#declare X=rank*sin(radians( 225 ))*cos(radians( wank ));
#declare Z=rank*cos(radians( 225 ))*cos(radians( wank ));
object {
_ANTENNE_1
scale 2
translate < X, Y-0.5, Z >
}
#declare X=rank*sin(radians( 135 ))*cos(radians( wank ));
#declare Z=rank*cos(radians( 135 ))*cos(radians( wank ));
object {
_ANTENNE_3
scale 1.5
translate < X, Y-0.3, Z >
}
#declare X=rank*sin(radians( 315 ))*cos(radians( wank ));
#declare Z=rank*cos(radians( 315 ))*cos(radians( wank ));
object {
_ANTENNE_2
scale 1.5
rotate < 0, 315, 0 >
translate < X, Y, Z >
}
} // end union
//---------------------------------------------------
// Beobachtungskuppel
#declare wbk = 63; // Winkel Beobachtungskuppel
#declare rbk = R - 0.5; // Radius Beobachtungskuppel
#declare Y=rbk*sin(radians( wbk ));
#declare Count = 67.5;
#declare BKPL =
union {
#while (Count < 360)
#declare X=rbk*sin(radians( Count ))*cos(radians( wbk ));
#declare Z=rbk*cos(radians( Count ))*cos(radians( wbk ));
sphere {
< 0, 0, 0 >, 1
hollow
texture { _T_GSK }
scale < 1, 0.5, 1 >
scale 5
rotate < 90-wbk, 0, 0 >
rotate < 0, Count, 0 >
translate < X, Y, Z >
} // end sphere
#declare Count=Count+180;
#end
} // end union
//---------------------------------------------------
// Raumer
#declare KR200 =
union {
object { SCHALE
texture {
_T_SCHALE
}
}
object { MANNSCHL }
object { HANGAR_B }
object { HANGARKR_OB }
object { HANGARKR_UT }
object { HANGAR_SJ }
object { WULST
texture {
_T_SCHALE
}
}
object { GSKP }
object { GSKR1 }
object { GSKR2 }
object { GSKR3 }
object { GSKR4 }
object { SSKR1 }
object { SSKR2 }
object { LTKR }
object { ORTER }
object { ANTENNE }
object { BKPL }
}
//---------------------------------------------------