diff --git a/pr/manoever/HB200.GIF b/pr/manoever/HB200.GIF new file mode 100644 index 0000000..dfb32e3 Binary files /dev/null and b/pr/manoever/HB200.GIF differ diff --git a/pr/manoever/HGRO200.GIF b/pr/manoever/HGRO200.GIF new file mode 100644 index 0000000..f0c428e Binary files /dev/null and b/pr/manoever/HGRO200.GIF differ diff --git a/pr/manoever/HGRU200.GIF b/pr/manoever/HGRU200.GIF new file mode 100644 index 0000000..f0c428e Binary files /dev/null and b/pr/manoever/HGRU200.GIF differ diff --git a/pr/manoever/HGSJ200.GIF b/pr/manoever/HGSJ200.GIF new file mode 100644 index 0000000..72acc55 Binary files /dev/null and b/pr/manoever/HGSJ200.GIF differ diff --git a/pr/manoever/KR200.INC b/pr/manoever/KR200.INC new file mode 100644 index 0000000..29bf7d1 --- /dev/null +++ b/pr/manoever/KR200.INC @@ -0,0 +1,1196 @@ + +// 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 { + gif "hgsj200.gif" + interpolate 4 // 4=normalized distance + filter 5 1.0 + 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 } +} + +//--------------------------------------------------- diff --git a/pr/manoever/KR200.POV b/pr/manoever/KR200.POV new file mode 100644 index 0000000..dbe5fc1 --- /dev/null +++ b/pr/manoever/KR200.POV @@ -0,0 +1,95 @@ + +// Persistence of Vision Ray Tracer Scene Description File +// POV-Ray 3.0 +// File: KR200.pov +// Vers: 1.0 +// Desc: Kugelraumer 200m Durchmesser +// Schwerer Kreuzer der TERRA-Klasse +// Date: 20.01.97 +// Auth: Harald Ottacher +// email: ottacher@iwf.tu-graz.ac.at +// +//////////////////////////////////////////////////// + + +// ==== Standard POV-Ray Includes ==== +#include "colors.inc" // Standard Color definitions +#include "textures.inc" // Standard Texture definitions + +// ==== Additional Includes ==== +#include "CONSTS.INC" + +//////////////////////////////////////////////////// + +camera { + location < 0.0, 0.0, -300.0> + direction 1.3*z + up y + right 4/3*x + look_at < 0.0, 0.0, 0.0> +} + +//////////////////////////////////////////////////// + +light_source { + 0*x + color red 1.0 green 1.0 blue 1.0 + translate <-200, 200, -400> +} + +light_source { + 0*x + color Gray70 + translate < 0, 0, -400> + shadowless +} + +//////////////////////////////////////////////////// + +#declare _STARS = 1 + +#ifdef (_STARS) +#declare Starfield= +texture { + pigment { + granite + color_map { + [ 0.0000 0.2700 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ] + [ 0.2700 0.2710 color rgb <.6,.6,.4> color rgb <.9,.9,.4> ] + [ 0.2710 0.4700 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ] + [ 0.4700 0.4720 color rgb <.4,.4,.5> color rgb <.4,.4,.7> ] + [ 0.4720 0.6800 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ] + [ 0.6800 0.6820 color rgb <.5,.4,.4> color rgb <.7,.4,.4> ] + [ 0.6820 0.8800 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ] + [ 0.8800 0.8815 color rgb <.5,.5,.5> color rgb < 1, 1, 1> ] + [ 0.8815 1.0000 color rgb < 0, 0, 0> color rgb < 0, 0, 0> ] + } + turbulence 1 + sine_wave + scale .5 + } + finish { diffuse 0 ambient 1 } +} +#else +#declare Starfield = +texture { + pigment { Black } +} +#end // if _STARS + +object { + sphere { < 0, 0, 0 >, 1 } + hollow + texture { Starfield } + scale 100000 +} // end object + +//////////////////////////////////////////////////// + +#include "KR200.INC" + +object { + KR200 + rotate < 0, -45, 0 > + rotate < -10, 0, 0 > +} diff --git a/pr/manoever/KRMAT.INC b/pr/manoever/KRMAT.INC new file mode 100644 index 0000000..e3582eb --- /dev/null +++ b/pr/manoever/KRMAT.INC @@ -0,0 +1,288 @@ + +// Persistence of Vision Ray Tracer Include File +// POV-Ray 3.0 +// File: KRMat.inc +// Vers: 1.0 +// Desc: Textures für die Kugelraumer +// Date: 20.01.97 +// Auth: Harald Ottacher +// email: ottacher@iwf.tu-graz.ac.at +// +//////////////////////////////////////////////////// + +// Materials +//--------------------------------------------------- + +// Texture TERKONIT +#declare TERKONIT = +texture { + pigment { color red 0.56 green 0.56 blue 0.8} + finish { + metallic + ambient 0.0 + diffuse 0.7 + brilliance 1 + reflection 0.1 + specular 0.7 + roughness 1/60 + } +} // end texture + +//--------------------------------------------------- +// Terkonit Kugelraumer Schale + +#declare _d = 0.70 +#declare _r = 100 +#declare _T_S_1 = +texture { + TERKONIT + finish { diffuse _d + roughness 1/_r } +} // end text 1 + +#declare _d = _d-0.01 +#declare _r = _r-5 +#declare _T_S_2 = +texture { + TERKONIT + finish { diffuse _d + roughness 1/_r } + +} // end text 2 + +#declare _d = _d-0.01 +#declare _r = _r-5 +#declare _T_S_3 = +texture { + TERKONIT + finish { diffuse _d + roughness 1/_r } +} // end text 3 + +#declare _d = _d-0.01 +#declare _r = _r-5 +#declare _T_S_4 = +texture { + TERKONIT + finish { diffuse _d + roughness 1/_r } +} // end text 4 + +#declare _d = _d-0.01 +#declare _r = _r-5 +#declare _T_S_5 = +texture { + TERKONIT + finish { diffuse _d + roughness 1/_r } +} // end text 5 + +#declare _d = _d-0.01 +#declare _r = _r-5 +#declare _T_S_6 = +texture { + TERKONIT + finish { diffuse _d + roughness 1/_r } +} // end text 6 + +#declare _d = _d-0.01 +#declare _r = _r-5 +#declare _T_S_7 = +texture { + TERKONIT + finish { diffuse _d + roughness 1/_r } +} // end text 7 + +#declare _d = _d-0.01 +#declare _r = _r-5 +#declare _T_S_8 = +texture { + TERKONIT + finish { diffuse _d + roughness 1/_r } +} // end text 8 + +#declare _d = _d-0.01 +#declare _r = _r-5 +#declare _T_S_9 = +texture { + TERKONIT + finish { diffuse _d + roughness 1/_r } +} // end text 9 + +#declare _d = _d-0.01 +#declare _r = _r-5 +#declare _T_S_10 = +texture { + TERKONIT + finish { diffuse _d + roughness 1/_r } +} // end text 10 + +#declare _d = _d-0.01 +#declare _r = _r-5 +#declare _T_S_11 = +texture { + TERKONIT + finish { diffuse _d + roughness 1/_r } +} // end text 11 + +#declare _d = _d-0.01 +#declare _r = _r-5 +#declare _T_S_12 = +texture { + TERKONIT + finish { diffuse _d + roughness 1/_r } +} // end text 12 + +#declare _d = _d-0.01 +#declare _r = _r-5 +#declare _T_S_13 = +texture { + TERKONIT + finish { diffuse _d + roughness 1/_r } +} // end text 13 + +#declare _d = _d-0.01 +#declare _r = _r-5 +#declare _T_S_14 = +texture { + TERKONIT + finish { diffuse _d + roughness 1/_r } +} // end text 14 + +#declare _d = _d-0.01 +#declare _r = _r-5 +#declare _T_S_15 = +texture { + TERKONIT + finish { diffuse _d + roughness 1/_r } +} // end text 15 + +#declare _d = _d-0.01 +#declare _r = _r-5 +#declare _T_S_16 = +texture { + TERKONIT + finish { diffuse _d + roughness 1/_r } +} // end text 16 + + +#declare _T_SCHALE = +texture { + material_map { + gif _MAT_gif + map_type Sphere_Map + + /* Now a list of textures to map with instead of colors */ + texture { _T_S_1 } + texture { _T_S_2 } + texture { _T_S_3 } + texture { _T_S_4 } + texture { _T_S_5 } + texture { _T_S_6 } + texture { _T_S_7 } + texture { _T_S_8 } + texture { _T_S_9 } + texture { _T_S_10 } + texture { _T_S_11 } + texture { _T_S_12 } + texture { _T_S_13 } + texture { _T_S_14 } + texture { _T_S_15 } + texture { _T_S_16 } + + } // end mat_map + rotate < 0, _M_ANGL, 0 > +} // end texture + +//--------------------------------------------------- +// Fenster Texture + +#declare _T_F_finish = +finish { + ambient 0.05 + diffuse 0.1 + reflection 0.2 + refraction 1 + ior 1.5 + phong 0.3 + phong_size 60 +} // end finish + +#ifdef (_NO_F_LIGHT) +#declare _T_FENSTER = +texture { + pigment {colour rgbft <0.4, 0.4, 0.4, 0.7, 0.3> } + finish { _T_F_finish } +} // end text +#else +#declare _T_FENSTER = +texture { + pigment {colour rgbft <0.4, 0.4, 0.4, 0.7, 1.0>} + finish { _T_F_finish } + halo { + emitting + constant + max_value 1 + spherical_mapping + colour_map { + [0 color rgbt <1.0, 1.0, 1.0, 0>] + [1 color rgbt <0.9, 1.0, 0.8, -1>] + } + // turbulence 0.5 + scale _FENSTER_R + samples 10 + } // end halo +} // end text +#end + +//--------------------------------------------------- +// Kuppel Texture + +#declare _T_K_text = +texture { + pigment {colour rgbft <0.4, 0.4, 0.6, 0.5, 0.5> } + finish { + ambient 0.00 + diffuse 0.2 + reflection 0.1 + refraction 1 + ior 1.5 + phong 0.3 + phong_size 60 + } // end finish +} // end text + +#ifdef (_NO_K_LIGHT) +#declare _T_GSK = +texture { _T_K_text +} // end text +#else +#declare _T_GSK = +texture { _T_K_text + halo { + emitting + cubic + max_value 1 + spherical_mapping + colour_map { + [0 color rgbt <1.0, 0.0, 0.0, 0.6>] + [0.2 color rgbt <1.0, 0.2, 0.1, 0.4>] + [1 color rgbt <1.0, 0.4, 0.2, 0.0>] + } + samples 10 + } // end halo +} // end text +#end + +//--------------------------------------------------- diff --git a/pr/manoever/KRPL200.GIF b/pr/manoever/KRPL200.GIF new file mode 100644 index 0000000..60a2ce9 Binary files /dev/null and b/pr/manoever/KRPL200.GIF differ diff --git a/pr/manoever/LISTE.TXT b/pr/manoever/LISTE.TXT new file mode 100644 index 0000000..c6ae7e2 --- /dev/null +++ b/pr/manoever/LISTE.TXT @@ -0,0 +1,26 @@ + +Datei Liste für 200 m Kugelraumer +-------------------------------- +Type: Schwerer Kreuzer der TERRA-Klasse + +KR200.pov Testszene für den 200 m Kugelraumer +KR200.inc POV-Ray Beschreibung des 200 m Kugelraumers +Krmat.inc Definitionen für die Kugelraumermaterialien +Krpl200.gif Material Map für den 200 m Kugelraumer +Liste.txt Diese Datei +Manns.gif Textur Map für die Mannschleusen +Hb200.gif Textur Map für die Bodenschleusen +Hgru200.gif Textur Map für die Hangars unten +Hgro200.gif Textur Map für die Hangars oben +Hgsj200.gif Textur Map für die Space Jets Hangars oben +View200.jpg Fertiges Bild des 200 m Kugelgaumers + mit der Testszene erstellt. + (kein Anti-Aliasing) + +Der Maßstab für den Raumer ist 1 m. +-------------------------------- +Viel Spaß allen die es ausprobieren. +Meldet Euch bei mir zu einem Gedankenaustausch. +-------------------------------- +Copyright 1997 Harald Ottacher +email: ottacher@iwf.tu-graz.ac.at diff --git a/pr/manoever/MANNS.GIF b/pr/manoever/MANNS.GIF new file mode 100644 index 0000000..afbfb64 Binary files /dev/null and b/pr/manoever/MANNS.GIF differ diff --git a/pr/manoever/VIEW200.JPG b/pr/manoever/VIEW200.JPG new file mode 100644 index 0000000..67cf0f5 Binary files /dev/null and b/pr/manoever/VIEW200.JPG differ