diff --git a/pr/schneller_kreuzer/GNUmakefile b/pr/schneller_kreuzer/GNUmakefile index 2d0050f..fa242b3 100644 --- a/pr/schneller_kreuzer/GNUmakefile +++ b/pr/schneller_kreuzer/GNUmakefile @@ -3,6 +3,8 @@ include GNUmakevars all: \ + test-transitionstriebwerk.png \ + test-deck_07.png \ test-deck_04.png \ test-feldschirm_projektor_v.png \ test-deck_06.png \ @@ -69,7 +71,10 @@ test-schneller_kreuzer.png: test-schneller_kreuzer.pov \ ringwulst.pov triebwerk.pov \ landestuetze.pov \ deck_08.pov \ + deck_07.pov \ + deck_06.pov \ deck_05.pov \ + deck_04.pov \ deck_03.pov \ feldschirm_projektor_v.pov \ deck_02.pov \ @@ -190,6 +195,9 @@ test-feldschirm_projektor_v.png: test-feldschirm_projektor_v.pov \ test-deck_04.png: test-deck_04.pov deck_04.pov \ +test-deck_07.png: test-deck_07.pov deck_07.pov \ + +test-transitionstriebwerk.png: test-transitionstriebwerk.pov transitionstriebwerk.pov \ %.gif: %.ppm ppmquant 256 $< | ppmtogif > $@ diff --git a/pr/schneller_kreuzer/deck_03.pov b/pr/schneller_kreuzer/deck_03.pov index faa9902..9de3723 100644 --- a/pr/schneller_kreuzer/deck_03.pov +++ b/pr/schneller_kreuzer/deck_03.pov @@ -75,6 +75,26 @@ cylinder { <0, -39, 0> <0, -41, 0> 2 } + #local aa = 0; + #while (aa < 360 ) + union { + cone { + <27, Z-0.3, 0>, 2 + <27, Z+0.3, 0>, 2 + } + box { + <27, 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 #ifdef (SCHNITT_1) intersection { torus { @@ -106,54 +126,71 @@ // Ausschnitt f. Landestützen #local aa = 0; #while (aa < 360 ) - difference { - union { - cone { - <23, Z+0.2, 0>, 2.1 - <23, Z+4.8, 0>, 2.1 + #local ss = 1; + #if (SCHNITT_1 & (aa >= 120 & aa <= 150)) + #local ss = 0; + #end + #if (ss) + difference { + union { + cone { + <23, Z+0.2, 0>, 2.1 + <23, Z+4.8, 0>, 2.1 + } + box { + <23, Z+0.2, -2.1> + <28, Z+4.8, +2.1> + } + cone { + <28, Z+0.2, 0>, 2.1 + <28, Z+4.8, 0>, 2.1 + } + texture { T_arkonstahl } + rotate <0, aa, 0> } - box { - <23, Z+0.2, -2.1> - <28, Z+4.8, +2.1> + union { + cone { + <23, Z+0.1, 0>, 2 + <23, Z+4.9, 0>, 2 + } + box { + <23, Z+0.1, -2> + <28, Z+4.9, +2> + } + cone { + <28, Z+0.1, 0>, 2 + <28, Z+4.9, 0>, 2 + } + texture { T_arkonstahl } + rotate <0, aa, 0> } - cone { - <28, Z+0.2, 0>, 2.1 - <28, Z+4.8, 0>, 2.1 + object { + landestuetze_neg + color Red + rotate <0, aa, 0> } - texture { T_arkonstahl } - rotate <0, aa, 0> } - union { - cone { - <23, Z+0.1, 0>, 2 - <23, Z+4.9, 0>, 2 - } - box { - <23, Z+0.1, -2> - <28, Z+4.9, +2> - } - cone { - <28, Z+0.1, 0>, 2 - <28, Z+4.9, 0>, 2 - } - texture { T_arkonstahl } - rotate <0, aa, 0> - } - } + #end #local aa = aa + 30; #end #local ii = 0; #while (ii < 12) - object { - treibstofftank_block - rotate <0, ii*30, 0> - } - object { - treibstofftank_block - scale <1, 1, -1> - rotate <0, ii*30, 0> - } + #local ss = 1; + #if (SCHNITT_1 & (ii >= 3 & ii <= 6)) + #local ss = 0; + #end + #if (ss) + object { + treibstofftank_block + rotate <0, ii*30, 0> + } + object { + treibstofftank_block + scale <1, 1, -1> + rotate <0, ii*30, 0> + } + #end #local ii = ii + 1; #end diff --git a/pr/schneller_kreuzer/deck_04.pov b/pr/schneller_kreuzer/deck_04.pov index 2fe1e5c..96f3cd8 100644 --- a/pr/schneller_kreuzer/deck_04.pov +++ b/pr/schneller_kreuzer/deck_04.pov @@ -4,6 +4,42 @@ #local Z = -35; +#local treibstofftank_block = + union { + #local rr = 15.5; + #local rr2 = sqrt(48*48 - Z*Z); + #while (rr < rr2) + #local da = degrees(asin(0.5/rr))*2; + #if (rr < 18 | rr > 31) + #local aa = degrees(asin(0.5/rr)); + #else + #local aa = degrees(asin(2.6/rr)); + #end + #local ae = 15 - degrees(asin(0.5/rr)); + #local n = int((ae-aa)/da); + #local da = (ae-aa)/n; + #local i = 0; + #while (i <= n) + #local ss = 1; + #ifdef (SCHNITT_1) + #local pp = vrotate(, <0, aa, 0>); + #if (pp.x < 0 & pp.z < 0) + #local ss = 0; + #end + #end + #if (ss) + object { + treibstofftank + translate + rotate <0, aa, 0> + } + #end + #local aa = aa + da; + #local i = i + 1; + #end + #local rr = rr + 1.0; + #end + } #declare deck_04 = union { #if (1) @@ -68,32 +104,25 @@ #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(, <0, aa, 0>); - #if (pp.x < 0 & pp.z < 0) - #local ss = 0; - #end - #end - #if (ss) - object { - treibstofftank - translate - rotate <0, aa, 0> - } - #end - #local aa = aa + da; + + #local ii = 0; + #while (ii < 12) + #local ss = 1; + #if (SCHNITT_1 & (ii >= 3 & ii <= 6)) + #local ss = 0; #end - #local rr = rr + 1.0; - #end + #if (ss) + object { + treibstofftank_block + rotate <0, ii*30, 0> + } + object { + treibstofftank_block + scale <1, 1, -1> + rotate <0, ii*30, 0> + } + #end + #local ii = ii + 1; #end } diff --git a/pr/schneller_kreuzer/deck_07.pov b/pr/schneller_kreuzer/deck_07.pov new file mode 100644 index 0000000..294cf50 --- /dev/null +++ b/pr/schneller_kreuzer/deck_07.pov @@ -0,0 +1,105 @@ +#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(, <0, aa, 0>); + #if (pp.x < 0 & pp.z < 0) + #local ss = 0; + #end + #end + #if (ss) + object { + treibstofftank + translate + 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 { , 2 } + difference { + cone { + , 0.3 + <50.0, Z+1.0, 0>, 0.2 + } + cone { + , 0.2 + <50.1, Z+1.0, 0>, 0.15 + } + } + object { + hufeisenpult + translate + } + texture { T_arkonstahl } + rotate <0, a, 0> + } + #local a = a + 60; + #end + } + + diff --git a/pr/schneller_kreuzer/deck_08.pov b/pr/schneller_kreuzer/deck_08.pov index bebca95..2420c6f 100644 --- a/pr/schneller_kreuzer/deck_08.pov +++ b/pr/schneller_kreuzer/deck_08.pov @@ -1,6 +1,9 @@ #include "T_bodenbelag.pov" #include "feldschirm_projektor.pov" #include "treibstofftank.pov" +#include "transitionstriebwerk.pov" + +#local Z = -15; #declare deck_08 = union { @@ -29,7 +32,7 @@ texture { pigment { rgb < 1, 0, 0 > } } } torus { - (15+6)/2, (15-6)/2 + 24, 5 translate <0, -15.0, 0> } #ifdef (SCHNITT_1) @@ -59,7 +62,7 @@ // Treibstofftanks - #local rr = 25.5; + #local rr = 24+5.5; #while (rr < 40.0) #local da = degrees(asin(0.5/rr))*2; #local da = 360 / int(360 / da); @@ -96,5 +99,9 @@ #end #local a = a + 20; #end + object { + transitionstriebwerk + translate <0, Z+0.2, 0> + } } diff --git a/pr/schneller_kreuzer/povray.ini b/pr/schneller_kreuzer/povray.ini index 8ccd496..61e68e8 100644 --- a/pr/schneller_kreuzer/povray.ini +++ b/pr/schneller_kreuzer/povray.ini @@ -1,6 +1,6 @@ -+Q9 ++QR +A +MB5 +HTN -+fp +w640 +h480 +d1 ++fp +w800 +h600 +d1 display_gamma = 2.2 diff --git a/pr/schneller_kreuzer/schneller_kreuzer.pov b/pr/schneller_kreuzer/schneller_kreuzer.pov index 5bac70a..eeb2193 100644 --- a/pr/schneller_kreuzer/schneller_kreuzer.pov +++ b/pr/schneller_kreuzer/schneller_kreuzer.pov @@ -14,8 +14,10 @@ #include "deck_11.pov" #include "ringwulst.pov" #include "deck_08.pov" +#include "deck_07.pov" #include "deck_06.pov" #include "deck_05.pov" +#include "deck_04.pov" #include "deck_03.pov" #include "deck_02.pov" #include "deck_01.pov" @@ -59,12 +61,18 @@ object { deck_08 } + object { + deck_07 + } object { deck_06 } object { deck_05 } + object { + deck_04 + } object { deck_03 } @@ -89,10 +97,16 @@ #end #local i = 0; #while (i < 12) - object { - landestuetze - rotate <0, i * 30, 0> - } + #local ss = 1; + #if (SCHNITT_1 & (i >= 4 & i <= 5)) + #local ss = 0; + #end + #if (ss) + object { + landestuetze + rotate <0, i * 30, 0> + } + #end #local i = i + 1; #end } diff --git a/pr/schneller_kreuzer/test-deck_03.pov b/pr/schneller_kreuzer/test-deck_03.pov index 2444477..895d252 100644 --- a/pr/schneller_kreuzer/test-deck_03.pov +++ b/pr/schneller_kreuzer/test-deck_03.pov @@ -17,7 +17,7 @@ light_source { color White } -#local CP = <25, 95, -0>; +#local CP = <0, 20, -100>; light_source { CP color White*0.5 @@ -25,7 +25,7 @@ light_source { camera { orthographic location CP - look_at <25, 20.0, 0> + look_at <0, 20.0, 0> angle 20 } diff --git a/pr/schneller_kreuzer/test-deck_07.pov b/pr/schneller_kreuzer/test-deck_07.pov new file mode 100644 index 0000000..44f0c3d --- /dev/null +++ b/pr/schneller_kreuzer/test-deck_07.pov @@ -0,0 +1,105 @@ +#include "colors.inc" +#include "shapes.inc" +#include "textures.inc" +#include "metals.inc" +#include "stones.inc" + +#declare SCHNITT_1 = 1; // Quadrant -/*/- +#local LANDESTUETZEN = 0; + +global_settings { + assumed_gamma 1.0 + ambient_light rgb<0.5, 0.5, 0.5> +} +background { color rgb<0.2, 0.4, 0.8> } +light_source { + <-200, 200, -200> + color White +} + +#local CP = <40, 120, 0>; +light_source { + CP + color White*0.5 +} +camera { + orthographic + location CP + look_at <40, 40.0, 0> + angle 20 +} + +#include "huelle.pov" +#include "deck_07.pov" +#include "deck_05.pov" + +union { + object { + deck_07 + } + object { + deck_05 + } + cylinder { + <100, -43, -100>, + <100, -43, +100>, + 0.2 + pigment { color <1, 1, 1> } + } + cylinder { + <100, -44, -100>, + <100, -44, +100>, + 0.2 + pigment { color <1, 1, 0> } + } + cylinder { + <100, -45, -100>, + <100, -45, +100>, + 0.2 + pigment { color <1, 0, 0> } + } + cylinder { + <100, -40, 0>, + <100, -55, 0>, + 0.2 + pigment { color <1, 0, 0> } + } + translate <0, 55, 0> +} + + +cylinder { + <0, 0, 0>, + <0, -1, 0>, 1000 + pigment { + radial + color_map{ + [0.1 rgb 0.1 ] + [0.1 White] + } + frequency 16 + } +} + + +/* +cone { + <0, 0, 0>, 0 + <1000, 0, 0>, 10 + pigment { color <1, 0, 0> } +} + +cone { + <0, 0, 0>, 0 + <0, 1000, 0>, 10 + pigment { color <0, 1, 0> } +} + +cone { + <0, 0, 0>, 0 + <0, 0, 1000>, 10 + pigment { color <0, 0, 1> } +} +*/ + + diff --git a/pr/schneller_kreuzer/test-deck_08.pov b/pr/schneller_kreuzer/test-deck_08.pov index c34adc8..cf8e02a 100644 --- a/pr/schneller_kreuzer/test-deck_08.pov +++ b/pr/schneller_kreuzer/test-deck_08.pov @@ -30,15 +30,19 @@ camera { #include "huelle.pov" #include "deck_08.pov" +#include "deck_05.pov" object { deck_08 } + object { + deck_05 + } cylinder { - <0, -15, 0>, - <0, -16, 0>, 1000 + <0, -30, 0>, + <0, -31, 0>, 1000 pigment { radial color_map{ diff --git a/pr/schneller_kreuzer/test-schneller_kreuzer.pov b/pr/schneller_kreuzer/test-schneller_kreuzer.pov index b495afd..e061065 100644 --- a/pr/schneller_kreuzer/test-schneller_kreuzer.pov +++ b/pr/schneller_kreuzer/test-schneller_kreuzer.pov @@ -10,6 +10,9 @@ global_settings { assumed_gamma 1.0 ambient_light rgb<0.5, 0.5, 0.5> + radiosity { + distance_maximum 10000 + } } background { color rgb<0.2, 0.4, 0.8> } light_source { @@ -19,23 +22,40 @@ light_source { /* * von schräg oben - */ + #local CP = <-250, 250, -200>; +camera { + location CP + look_at <-0, 55, -0> + angle 25 +} + */ /* * untere decks - */ -#local CP = <-150, 0, -100>; -light_source { - CP - color White*0.5 -} +#local CP = <-150, 0, -100>; camera { location CP look_at <-0, 20, -0> angle 25 } + */ +/* + * von unten + */ + +#local CP = <-250, 2, -200>; +camera { + location CP + look_at <-0, 55, -0> + angle 25 +} + +light_source { + CP + color White*0.5 +} #include "schneller_kreuzer.pov" @@ -64,11 +84,11 @@ cone { pigment { color <1, 0, 0> } } -# cone { -# <0, 0, 0>, 0 -# <0, 1000, 0>, 10 -# pigment { color <0, 1, 0> } -# } +// cone { +// <0, 0, 0>, 0 +// <0, 1000, 0>, 10 +// pigment { color <0, 1, 0> } +// } cone { <0, 0, 0>, 0 diff --git a/pr/schneller_kreuzer/test-shift.pov b/pr/schneller_kreuzer/test-shift.pov index 87ad41b..83d2f9b 100644 --- a/pr/schneller_kreuzer/test-shift.pov +++ b/pr/schneller_kreuzer/test-shift.pov @@ -20,7 +20,7 @@ light_source { color White*0.5 } camera { - orthographic + // orthographic location <7, 1.8, 15> look_at <0, 0.5, 5> angle 40 diff --git a/pr/schneller_kreuzer/test-transitionstriebwerk.pov b/pr/schneller_kreuzer/test-transitionstriebwerk.pov index 6af1a52..4369260 100644 --- a/pr/schneller_kreuzer/test-transitionstriebwerk.pov +++ b/pr/schneller_kreuzer/test-transitionstriebwerk.pov @@ -10,13 +10,18 @@ light_source { <16.5, 14, 16.5> colour C_OffWhite * 0.6 } light_source { <-16.5, 14, 16.5> colour C_OffWhite * 0.6 } light_source { <16.5, 14, -16.5> colour C_OffWhite * 0.6 } light_source { <-16.5, 14, -16.5> colour C_OffWhite * 0.6 } +light_source { <-23.5, 9.6, 0> colour White } camera { - location <20, 40, 20> - look_at <0, 0, 0> + location <-13, 10, -13> + look_at <-8.0, 5.4, -8.0> } + +background { color rgb<0.2, 0.4, 0.8> } plane {<0, 1, 0>, 0 texture {pigment {color White}}} + //plane {<0, -1, 0>, -15 texture {pigment {color White}}} +#if (0) difference { cone { <0, 0, 0> 25, @@ -26,6 +31,7 @@ difference { <0, 0, 0> 24, <0, 16, 0> 24 } + // Schotts box { <-1.5, 0, -25> <+1.5, 5, +25> @@ -36,6 +42,7 @@ difference { } texture {pigment {color White}} } +#end #include "transitionstriebwerk.pov" diff --git a/pr/schneller_kreuzer/transitionstriebwerk.pov b/pr/schneller_kreuzer/transitionstriebwerk.pov index 8d761fe..6a65885 100644 --- a/pr/schneller_kreuzer/transitionstriebwerk.pov +++ b/pr/schneller_kreuzer/transitionstriebwerk.pov @@ -1,51 +1,54 @@ #include "metals.inc" #include "glass.inc" +#local pos_turm = 8; + #declare turm = lathe { 30, - <0.0, 0.0>, - <2.7, 0.0>, - <2.7, 0.6>, - <2.3, 1.8>, - <2.3, 2.2>, - <2.7, 3.2>, - <3.2, 3.2>, - <3.2, 3.4>, - <2.7, 3.4>, - <1.8, 5.6>, - <2.7, 5.6>, - <2.7, 6.2>, - <2.1, 6.8>, - <1.9, 7.6>, - <0.9, 7.6>, - <0.9, 8.2>, - <2.1, 8.2>, - <2.1, 8.4>, - <0.9, 8.4>, - <0.9, 8.6>, - <2.1, 8.6>, - <2.1, 8.8>, - <0.9, 8.8>, - <0.9, 9.0>, - <2.1, 9.0>, - <2.1, 9.2>, - <2.1, 9.7>, - <2.6, 9.7>, - <2.6, 10.3>, - <0.0, 10.3> + < 0.0, 0.0> + < 1.6, 0.0> + < 1.6, 0.6> + < 1.4, 1.7> + < 1.4, 2.0> + < 1.6, 3.0> + < 1.9, 3.0> + < 1.9, 3.1> + < 1.6, 3.1> + < 1.1, 5.2> + < 1.6, 5.2> + < 1.6, 5.7> + < 1.3, 6.3> + < 1.1, 7.0> + < 0.5, 7.0> + < 0.5, 7.6> + < 1.3, 7.6> + < 1.3, 7.7> + < 0.5, 7.7> + < 0.5, 7.9> + < 1.3, 7.9> + < 1.3, 8.1> + < 0.5, 8.1> + < 0.5, 8.3> + < 1.3, 8.3> + < 1.3, 8.5> + < 1.3, 8.9> + < 1.6, 8.9> + < 1.6, 9.5> + < 0.0, 9.5> + texture { pigment { image_map { - gif "turm-c.gif" + png "turm-c.png" // XXX - rescale! map_type 2 } - scale <1, 10.3, 1> + scale <1, 9.5, 1> } } normal { bump_map { - gif "turm-b.gif" + png "turm-b.png" map_type 2 bump_size 5 } @@ -112,18 +115,18 @@ lathe { 10, <0.0, 0.0>, - <1.0, 0.0>, - <1.0, 0.4>, - <0.8, 0.5>, - <0.8, 1.2>, - <1.0, 1.4>, - <1.0, 1.8>, - <0.8, 1.8>, - <0.7, 2.0>, + <0.6, 0.0>, + <0.6, 0.4>, + <0.5, 0.5>, + <0.5, 1.2>, + <0.6, 1.4>, + <0.6, 1.8>, + <0.5, 1.8>, + <0.4, 2.0>, <0.0, 2.0> } sphere { - <0, 2, 0>, 0.7 + <0, 2, 0>, 0.4 } texture { T_Copper_3D @@ -134,12 +137,12 @@ #declare hufeisen = union { box { - <0.0, 8.2, 0.0>, - <0.8, 10.0, 2.5> + <0.0, 7.6, 0.0>, + <0.5, 9.2, 1.5> } cone { - <0.0, 9.1, 0.0>, 0.9, - <0.8, 9.1, 0.0>, 0.9 + <0.0, 8.4, 0.0>, 0.8, + <0.5, 8.4, 0.0>, 0.8 } texture { T_Copper_3D @@ -151,16 +154,16 @@ union { cone { <0, 0, 0>, 0.3, - <0, 2.9, 0>, 0.1 + <0, 2.7, 0>, 0.1 } sphere { - <0, 2.85, 0>, 0.15 + <0, 2.7, 0>, 0.15 } #declare i=0; #while (i < 6) cone { - <0, i * 0.33 + 0.5, 0>, 1.2 - 0.1 * i, - <0, i * 0.33 + 0.8, 0>, 1.2 - 0.1 * i + <0, i * 0.25 + 0.5, 0>, 0.7 - 0.06 * i, + <0, i * 0.25 + 0.7, 0>, 0.7 - 0.06 * i texture { T_Ruby_Glass } @@ -184,73 +187,74 @@ linear_sweep linear_spline 0, - 9.6, + 8.9, 6, - <0, 0>, <6.8, 0>, <6.8, 3.6>, <4.4, 6.0>, <0, 6.0>, <0, 0> + <0, 0>, <4.1, 0>, <4.1, 2.2>, <2.6, 3.6>, <0, 3.6>, <0, 0> } box { - <0.4, 0.8, -0.1>, <6.4, 4, 2.4> + <0.2, 0.7, -0.1>, <3.8, 3.7, 1.4> } box { - <0.8, 6.4, -0.1>, <3.4, 9.7, 4.4> + <0.5, 5.9, -0.1>, <2.0, 8.9, 2.6> } } object { console - translate <0.8, 6.4, 0> + translate <0.5, 5.9, 0> } object { baum - translate <2.1, 7.0, 2.5> + translate <1.25, 6.5, 1.5> } object { zylinder - translate <1.4, 0.8, 1.2> + translate <0.8, 0.7, 0.7> } object { zylinder - translate <3.4, 0.8, 1.2> + translate <2.0, 0.7, 0.7> } object { zylinder - translate <5.4, 0.8, 1.2> + translate <3.2, 0.7, 0.7> } object { hufeisen - translate <3.8, 0.0, 0.0> + translate <2.3, 0.0, 0.0> } object { hufeisen - translate <5.0, 0.0, 0.0> + translate <3.0, 0.0, 0.0> } union { - #declare zet = 5.2; + #declare zet = 3.1; + #declare top = 8.9; cone { - <4.0, 9.6, zet>, 0.4 - <4.0, 9.8, zet>, 0.4 + <2.5, top, zet>, 0.2 + <2.5, (top+0.2), zet>, 0.2 } cone { - <4.0, 9.6, zet>, 0.1 - <4.0, 9.6, 2.5>, 0.1 + <2.5, top, zet>, 0.1 + <2.5, top, 1.5>, 0.1 } cone { - <4.0, 9.6, zet>, 0.1 - <5.2, 9.6, zet-1.2>, 0.1 + <2.5, top, zet>, 0.1 + <3.3, top, zet-1.2>, 0.1 } cone { - <5.2, 9.6, zet-1.2>, 0.1 - <5.2, 9.6, 2.5>, 0.1 + <3.3, top, zet-1.2>, 0.1 + <3.3, top, 1.5>, 0.1 } cone { - <4.0, 9.6, zet>, 0.1 - <1.0, 9.6, zet>, 0.1 + <2.5, top, zet>, 0.1 + <0.6, top, zet>, 0.1 } cone { - <1.0, 9.6, zet>, 0.6 - <1.0, 9.8, zet>, 0.6 + <0.6, top, zet>, 0.4 + <0.6, (top+0.2), zet>, 0.4 } sphere { - <1.0, 9.6, zet>, 0.5 + <0.6, top, zet>, 0.3 } texture { @@ -261,24 +265,24 @@ } union { cone { - <4.8, 9.3, 0>, 0.1 - <4.8, 5.0, 0>, 0.1 + <2.9, 8.6, 0>, 0.1 + <2.9, 4.6, 0>, 0.1 } cone { - <4.8, 5.0, 0.0>, 0.2 - <4.8, 5.0, -0.1>, 0.2 + <2.9, 4.6, 0.0>, 0.2 + <2.9, 4.6, -0.1>, 0.2 } cone { - <4.8, 5.1, 0.0>, 0.1 - <2.0, 5.1, 0.0>, 0.1 + <2.9, 4.7, 0.0>, 0.1 + <1.2, 4.7, 0.0>, 0.1 } cone { - <4.8, 4.9, 0.0>, 0.1 - <3.0, 4.9, 0.0>, 0.1 + <2.9, 4.5, 0.0>, 0.1 + <1.8, 4.5, 0.0>, 0.1 } cone { - <3.0, 4.9, 0.0>, 0.1 - <3.0, 4.0, 0.0>, 0.1 + <1.8, 4.5, 0.0>, 0.1 + <1.8, 3.7, 0.0>, 0.1 } texture { @@ -314,7 +318,7 @@ LightSteelBlue } } - translate <1, 5.1, 0> + translate <0.6, 4.7, 0> } texture { @@ -329,11 +333,11 @@ union { object { block - translate <+0.45, 0, -14.5> + translate <+0.45, 0, -pos_turm-1.5> } object { block - translate <+0.45, 0, -14.5> + translate <+0.45, 0, -pos_turm-1.5> scale <-1, 1, 1> } } @@ -342,55 +346,58 @@ union { difference { cone { - <0, 5.6, 0>, 2.7 + 0.8, - <0, 5.8, 0>, 2.7 + 0.8 + <0, 5.2, 0>, 1.6 + 0.8, + <0, 5.4, 0>, 1.6 + 0.8 } cone { - <0, 5.5, 0>, 2.7, - <0, 5.9, 0>, 2.7 + <0, 5.1, 0>, 1.6, + <0, 5.5, 0>, 1.6 } } difference { torus { - 2.7 + 0.8, 0.02 - translate <0, 6.6, 0> + 1.6 + 0.8, 0.02 + translate <0, 6.2, 0> } box { - <-0.4, 6.5, -(2.7 + 0.9)> - <+0.4, 6.7, +(2.7 + 0.9)> - rotate <0, -45, 0> + <-0.4, 6.1, +(1.6 + 0.7)> + <+0.4, 6.3, +(1.6 + 0.9)> + rotate <0, 135, 0> } box { - <-0.4, 6.5, -(2.7 + 0.9)> - <+0.4, 6.7, +(2.7 + 0.9)> - rotate <0, 90 - 32.03, 0> + <-0.4, 6.1, +(1.6 + 0.7)> + <+0.4, 6.3, +(1.6 + 0.9)> + rotate <0, 240, 0> } box { - <-0.4, 6.5, -(2.7 + 0.9)> - <+0.4, 6.7, +(2.7 + 0.9)> - rotate <0, 180 + 32.03, 0> + <-0.4, 6.1, +(1.6 + 0.7)> + <+0.4, 6.3, +(1.6 + 0.9)> + rotate <0, 30, 0> } } + #declare i=0; #while (i < 360) - cone { - <0, 5.6, -(2.7 + 0.8)>, 0.02, - <0, 6.6, -(2.7 + 0.8)>, 0.02 - rotate <0, i, 0> - } + #if (i != 30 & i != 240) + cone { + <0, 5.2, (1.6 + 0.8)>, 0.02, + <0, 6.2, (1.6 + 0.8)>, 0.02 + rotate <0, i, 0> + } + #end #declare i = i + 30; #end union { cone { <-0.4, 0, 0>, 0.02, - <-0.4, 6.6, 0>, 0.02 + <-0.4, 6.2, 0>, 0.02 } cone { <+0.4, 0, 0>, 0.02, - <+0.4, 6.6, 0>, 0.02 + <+0.4, 6.2, 0>, 0.02 } #declare i=0.3; - #while (i < 5.6) + #while (i < 5.2) box { <-0.4, i, 0.1>, <+0.4, i + 0.02, -0.1> @@ -405,7 +412,7 @@ plane { <0, 0, -1>, 0 } - translate <-0.4, 6.1, 0> + translate <-0.4, 5.7, 0> } difference { torus { @@ -415,49 +422,70 @@ plane { <0, 0, -1>, 0 } - translate <+0.4, 6.1, 0> + translate <+0.4, 5.7, 0> } - translate <0, 0, -(2.7 + 0.8)> + translate <0, 0, -(1.6 + 0.8)> rotate <0, -45, 0> } } #declare steg_verbindung = union { + #local z1 = 0.4 * cos(radians(30)); box { - <2.7 + 0.4, 5.6, -0.4>, - <5.582 , 5.8, 0.4> + <1.6 + 0.4, 5.2, -0.4>, + <(1.5+0.8-z1)*2, 5.4, 0.4> + } + + cone { + <1.6 + 0.8, 5.2, -0.4>, 0.02 + <1.6 + 0.8, 6.2, -0.4>, 0.02 } cone { - <2.7 + 0.8, 6.6, -0.4>, 0.02 - <5.353 , 6.6, -0.4>, 0.02 + <1.6 + 0.8, 6.2, -0.4>, 0.02 + <(1.5+z1)*2, 6.2, -0.4>, 0.02 } cone { - <2.7 + 0.8, 6.6, +0.4>, 0.02 - <5.582 , 6.6, +0.4>, 0.02 + <(1.5+z1)*2, 5.2, -0.4>, 0.02 + <(1.5+z1)*2, 6.2, -0.4>, 0.02 + } + + cone { + <1.6 + 0.8, 5.2, +0.4>, 0.02 + <1.6 + 0.8, 6.2, +0.4>, 0.02 + } + cone { + <1.6 + 0.8, 6.2, +0.4>, 0.02 + <(1.5+0.8-z1)*2, 6.2, +0.4>, 0.02 + } + cone { + <(1.5+0.8-z1)*2, 5.2, +0.4>, 0.02 + <(1.5+0.8-z1)*2, 6.2, +0.4>, 0.02 } //plane { // <0, 0, -1>, 3.3 //} - rotate <0, 180 - 32.03, 0> - translate <12, 0, 0> + //rotate <0, 180 - 32.03, 0> + rotate <0, 180 - 30.00, 0> + translate } #declare steg_seite = union { + #local x1 = pos_turm - (1.5+0.8-z1)*2*cos(radians(30)) + 0.4*sin(radians(30)); box { - <-(12 - 4.52), 5.6, -3.3>, - <+(12 - 4.52), 5.8, -2.5> + <-x1, 5.2, -2.3>, + <+x1, 5.4, -1.5> } cone { - <-(12 - 4.52), 6.6, -3.3>, 0.02, - <+(12 - 4.52), 6.6, -3.3>, 0.02 + <-x1, 6.2, -2.3>, 0.02, + <+x1, 6.2, -2.3>, 0.02 } - #declare i=-6; - #while (i <= 6) + #declare i=-4; + #while (i <= 4) cone { - , 0.02, - , 0.02 + , 0.02, + , 0.02 } #declare i = i + 2; #end @@ -474,37 +502,44 @@ union { object { steg_turm - translate <12, 0, 0> + translate } object { steg_seite translate <0, 0, 0> } + /* texture { T_Chrome_5E } + */ + texture { + pigment { + Yellow + } + } } #declare steg = union { object { steg1 - translate <0, 0, -12> + translate <0, 0, -pos_turm> } object { steg1 - translate <0, 0, -12> + translate <0, 0, -pos_turm> rotate <0, 90, 0> } object { steg1 - translate <0, 0, -12> + translate <0, 0, -pos_turm> rotate <0, 180, 0> } object { steg1 - translate <0, 0, -12> + translate <0, 0, -pos_turm> rotate <0, 270, 0> } } @@ -522,83 +557,84 @@ } cone { <0, 0, 0>, 3.2 - <0, 0.4, 0>, 3.2 + <0, 0.3, 0>, 3.2 } cone { - <0, 0.4, 0>, 2.8 - <0, 3, 0>, 3.2 + <0, 0.3, 0>, 2.8 + <0, 2.5, 0>, 3.2 } cone { - <0, 3, 0>, 2.5 - <0, 4.4, 0>, 2.5 + <0, 2.5, 0>, 2.5 + <0, 3.6, 0>, 2.5 texture { pigment { image_map { gif "zentral1.gif" map_type 2 } - scale <1, 1.4, 1> + scale <1, 1.1, 1> } } } intersection { sphere { - <0, 6.6, 0>, 3.9 + <0, 5.5, 0>, 3.9 } box { - <-3.9, 4.4, -3.9> - <+3.9, 8.8, +3.9> + <-3.9, 3.6, -3.9> + <+3.9, 7.4, +3.9> } } union { difference { cone { - <0, 8.8, 0>, 2.7 - <0, 10.2, 0>, 2.3 + <0, 7.4, 0>, 2.7 + <0, 8.4, 0>, 2.3 } box { - <0.2, 9.0, -0.2> - <2.7, 10.0, -2.7> + <0.2, 7.5, -0.2> + <2.7, 8.3, -2.7> } box { - <0.2, 9.0, +0.2> - <2.7, 10.0, +2.7> + <0.2, 7.5, +0.2> + <2.7, 8.3, +2.7> } box { - <-0.2, 9.0, +0.2> - <-2.7, 10.0, +2.7> + <-0.2, 7.5, +0.2> + <-2.7, 8.3, +2.7> } box { - <-0.2, 9.0, -0.2> - <-2.7, 10.0, -2.7> + <-0.2, 7.5, -0.2> + <-2.7, 8.3, -2.7> } } cone { - <0, 8.8, 0>, 2.1 - <0, 10.2, 0>, 2.1 + <0, 7.4, 0>, 2.1 + <0, 8.4, 0>, 2.1 } } cone { - <0, 10.2, 0>, 1.7 - <0, 10.8, 0>, 1.4 + <0, 8.4, 0>, 1.7 + <0, 8.9, 0>, 1.4 texture { pigment { image_map { gif "zentral2.gif" map_type 2 } - scale <1, 0.6, 1> + scale <1, 0.5, 1> + translate <0, -0.1, 0> } } } cone { - <0, 10.8, 0>, 0.7 - <0, 10.9, 0>, 0.7 + <0, 8.9, 0>, 0.7 + <0, 9.0, 0>, 0.7 } sphere { - <0, 10.9, 0>, 0.6 + <0, 9.0, 0>, 0.5 } texture { pigment { White } @@ -610,58 +646,57 @@ union { difference { box { - <9, 8.2, -1> - <15, 9.7, +1> + <6, 7.6, -0.5> + <10, 8.9, +0.5> } cone { - <0, 0, -1.1>, 2 - <0, 0, +1.1>, 2 - scale <1, 0.5, 1> - translate <11, 8.2, 0> + <0, 0, -1.1>, 1 + <0, 0, +1.1>, 1 + translate <7.3, 7.6, 0> } box { - <8.9, 8.2, -1.1> - <11, 9.2, +1.1> + <5.9, 7.6, -1.1> + <7.3, 8.5, +1.1> } } cone { - <9, 9.7, 0>, 0.1 - <15, 9.7, 0>, 0.1 + < 6, 8.9, 0>, 0.1 + <10, 8.9, 0>, 0.1 texture { pigment { Orange } } } cone { - <11, 9.7, 0>, 0.5 - <11, 9.9, 0>, 0.5 + <7.3, 8.9, 0>, 0.3 + <7.3, 9.1, 0>, 0.3 texture { pigment { Orange } } } box { - < 6.5, 8.8, -1> - <13, 9.0, +1> + < 6.0, 8.1, -1> + <11, 8.3, +1> } intersection { torus { - 5.7, 1.0 - translate <0, 8.0, 0> + 5.2, 1.0 + translate <0, 7.4, 0> } box { - <4.7, 7.0, -1.0> - <6.7, 8.0, +1.0> + <4.2, 6.4, -1.0> + <6.2, 7.4, +1.0> } } intersection { difference { cone { - <0, 8.0, 0>, 6.7 - <0, 9.0, 0>, 6.7 + <0, 7.4, 0>, 6.2 + <0, 8.3, 0>, 6.2 } cone { - <0, 7.9, 0>, 6.5 - <0, 9.1, 0>, 6.5 + <0, 7.3, 0>, 6.0 + <0, 8.4, 0>, 6.0 } } box { - <4.7, 8.0, -1.0> - <6.7, 9.0, +1.0> + <4.7, 7.4, -1.0> + <6.7, 8.3, +1.0> } } prism { @@ -669,8 +704,8 @@ linear_sweep -0.8, 0.8, 8, - <5.0, 8.8>, <6.0, 8.8>, <6.5, 9.0>, <8, 9.0>, - <8, 9.2>, <6.5, 9.5>, <4.5, 9.5>, <5.0, 8.8> + <4.5, 8.1>, <5.5, 8.1>, <6.0, 8.3>, <7.5, 8.3>, + <7.5, 8.5>, <6.0, 8.8>, <4.0, 8.8>, <4.5, 8.1> rotate <-90, 0, 0> texture { pigment { White } @@ -684,8 +719,8 @@ #declare ring = union { torus { - 5.7, 0.8 - translate <0, 8.0, 0> + 5.2, 0.8 + translate <0, 7.4, 0> texture { pigment { DarkSlateGray } } @@ -714,19 +749,19 @@ union { object { turm - translate <-12, 0, -12> + translate <-pos_turm, 0, -pos_turm> } object { turm - translate <-12, 0, +12> + translate <-pos_turm, 0, +pos_turm> } object { turm - translate <+12, 0, +12> + translate <+pos_turm, 0, +pos_turm> } object { turm - translate <+12, 0, -12> + translate <+pos_turm, 0, -pos_turm> } object { block_paar @@ -752,4 +787,13 @@ object { ring } + cone { + <0, 0, 0>, 15.0 + <0, 0.005, 0>, 15.0 + texture { + pigment { + Blue + } + } + } } diff --git a/pr/schneller_kreuzer/zentral1.gif b/pr/schneller_kreuzer/zentral1.gif new file mode 100644 index 0000000..f2a91a1 Binary files /dev/null and b/pr/schneller_kreuzer/zentral1.gif differ diff --git a/pr/schneller_kreuzer/zentral2.gif b/pr/schneller_kreuzer/zentral2.gif new file mode 100644 index 0000000..8acb61c Binary files /dev/null and b/pr/schneller_kreuzer/zentral2.gif differ