diff --git a/pr/schneller_kreuzer/GNUmakefile b/pr/schneller_kreuzer/GNUmakefile index 2937e70..883670e 100644 --- a/pr/schneller_kreuzer/GNUmakefile +++ b/pr/schneller_kreuzer/GNUmakefile @@ -3,6 +3,9 @@ include GNUmakevars all: \ + test-deck_05.png \ + test-deck_08.png \ + test-feldschirm_projektor.png \ test-landestuetze.png \ test-ortung.png \ test-rounded_box.png \ @@ -62,6 +65,8 @@ test-schneller_kreuzer.png: test-schneller_kreuzer.pov \ speicherbank.pov andruckabsorber.pov \ ringwulst.pov triebwerk.pov \ landestuetze.pov \ + deck_08.pov \ + deck_05.pov \ deck_03.pov \ deck_02.pov \ deck_01.pov shift.pov \ @@ -163,5 +168,14 @@ test-ortung.png: test-ortung.pov \ ortung.pov \ rounded_box.pov \ +test-feldschirm_projektor.png: test-feldschirm_projektor.pov \ + feldschirm_projektor.pov + +test-deck_08.png: test-deck_08.pov deck_08.pov \ + feldschirm_projektor.pov + +test-deck_05.png: test-deck_05.pov deck_05.pov \ + speicherbank.pov + %.gif: %.ppm ppmquant 256 $< | ppmtogif > $@ diff --git a/pr/schneller_kreuzer/deck_05.pov b/pr/schneller_kreuzer/deck_05.pov new file mode 100644 index 0000000..f7a581a --- /dev/null +++ b/pr/schneller_kreuzer/deck_05.pov @@ -0,0 +1,92 @@ +#include "treibstofftank.pov" +#include "speicherbank.pov" + +#declare deck_05 = + union { + #if (1) + intersection { + union { + difference { + object { huelle } + // Ausschnitte + } + } + box { + <-50, -25, -50> + < 50, -30, 50> + } + } + #end + difference { + cone { + <0, -29.8, 0> 38.9 + <0, -30.2, 0> 38.6 + texture { T_arkonstahl } + } + + // Ausschnitt f. Landestützen + // XXX + + #ifdef (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, 20.0, 0> + } + #end + } + #local rr = 25.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 + + #local da = 60; + #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 { + speicherbank + translate <5, -29.8, 0> + rotate <0, aa, 0> + } + #end + #local aa = aa + da; + #end + } + diff --git a/pr/schneller_kreuzer/deck_08.pov b/pr/schneller_kreuzer/deck_08.pov new file mode 100644 index 0000000..bebca95 --- /dev/null +++ b/pr/schneller_kreuzer/deck_08.pov @@ -0,0 +1,100 @@ +#include "T_bodenbelag.pov" +#include "feldschirm_projektor.pov" +#include "treibstofftank.pov" + +#declare deck_08 = + union { + + // Deck + #if (1) + intersection { + union { + difference { + object { huelle } + // Ausschnitte + } + } + box { + < 50, -10, 50> + <-50, -15, -50> + } + } + #end + difference { // XXX + cone { + <0, -14.8, 0> 40.0 + <0, -15.2, 0> 40.0 + // texture { T_arkonstahl } + // texture { T_bodenbelag } + texture { pigment { rgb < 1, 0, 0 > } } + } + torus { + (15+6)/2, (15-6)/2 + translate <0, -15.0, 0> + } + #ifdef (SCHNITT_1) + intersection { + cone { + <0, -0.3, 0> 47.1 + <0, 0.3, 0> 47.1 + } + plane { + <0, 0, -1> 0 + rotate <0, 45, 0> + } + plane { + <0, 0, +1> 0 + rotate <0, -45, 0> + } + rotate <0, 135, 0> + translate <0, -15.0, 0> + texture { pigment { rgb < 1, 0, 0 > } } + } + #end + } + + + + + + + // Treibstofftanks + #local rr = 25.5; + #while (rr < 40.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; + #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 + + + #local a = 0; + #while (a < 360) + #if (!SCHNITT_1 | a <= 270) + object { + feldschirm_projektor + scale <0, -1, 0> + rotate <0, a, 0> + } + #end + #local a = a + 20; + #end + } + diff --git a/pr/schneller_kreuzer/landestuetze.pov b/pr/schneller_kreuzer/landestuetze.pov index 96bd175..3bbd5b9 100644 --- a/pr/schneller_kreuzer/landestuetze.pov +++ b/pr/schneller_kreuzer/landestuetze.pov @@ -1,3 +1,4 @@ +#include "T_arkonstahl.pov" #include "T_arkonstahl2.pov" /* Landeposition diff --git a/pr/schneller_kreuzer/schneller_kreuzer.pov b/pr/schneller_kreuzer/schneller_kreuzer.pov index dc8b56c..9c8bb0f 100644 --- a/pr/schneller_kreuzer/schneller_kreuzer.pov +++ b/pr/schneller_kreuzer/schneller_kreuzer.pov @@ -13,6 +13,8 @@ #include "deck_12.pov" #include "deck_11.pov" #include "ringwulst.pov" +#include "deck_08.pov" +#include "deck_05.pov" #include "deck_03.pov" #include "deck_02.pov" #include "deck_01.pov" @@ -53,6 +55,12 @@ object { ringwulst } + object { + deck_08 + } + object { + deck_05 + } object { deck_03 } diff --git a/pr/schneller_kreuzer/test-deck_05.pov b/pr/schneller_kreuzer/test-deck_05.pov new file mode 100644 index 0000000..9d2726b --- /dev/null +++ b/pr/schneller_kreuzer/test-deck_05.pov @@ -0,0 +1,109 @@ +#include "colors.inc" +#include "shapes.inc" +#include "textures.inc" +#include "metals.inc" +#include "stones.inc" +#include "landestuetze.pov" + +#declare SCHNITT_1 = 1; // Quadrant -/*/- + +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 = <-100, 60, -100>; +light_source { + CP + color White*0.5 +} +camera { + orthographic + location CP + look_at <-0, 20, 0> + angle 20 +} + +#include "huelle.pov" +#include "deck_05.pov" + +union { + object { + deck_05 + } + #local i = 0; + #while (i < 12) + object { + landestuetze + rotate <0, i * 30, 0> + } + #local i = i + 1; + #end + 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 new file mode 100644 index 0000000..c34adc8 --- /dev/null +++ b/pr/schneller_kreuzer/test-deck_08.pov @@ -0,0 +1,70 @@ +#include "colors.inc" +#include "shapes.inc" +#include "textures.inc" +#include "metals.inc" +#include "stones.inc" + +#declare SCHNITT_1 = 1; // Quadrant -/*/- +#declare SHOW_Y_AXIS = 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 = <-105, 100, -105>; +light_source { + CP + color White*0.5 +} +camera { + location CP + look_at <-15, -15, -0> + angle 20 +} + +#include "huelle.pov" +#include "deck_08.pov" + + object { + deck_08 + } + + +cylinder { + <0, -15, 0>, + <0, -16, 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> } +} + +#if (SHOW_Y_AXIS) +cone { + <0, 0, 0>, 0 + <0, 1000, 0>, 10 + pigment { color <0, 1, 0> } +} +#end + +cone { + <0, 0, 0>, 0 + <0, 0, 1000>, 10 + pigment { color <0, 0, 1> } +} diff --git a/pr/schneller_kreuzer/test-feldschirm_projektor.pov b/pr/schneller_kreuzer/test-feldschirm_projektor.pov new file mode 100644 index 0000000..cfe1952 --- /dev/null +++ b/pr/schneller_kreuzer/test-feldschirm_projektor.pov @@ -0,0 +1,57 @@ +#include "colors.inc" +#include "shapes.inc" +#include "textures.inc" +#include "metals.inc" +#include "stones.inc" + +#declare SCHNITT_1 = 1; // Quadrant -/*/- + +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, -00> + color White +} +light_source { + <200, 120, -171> + color White*0.5 +} +camera { + orthographic + location <-40, 10, -30> + look_at <-40, 10, 0> + angle 40 +} + +#include "feldschirm_projektor.pov" + +object { + feldschirm_projektor +} + + +cylinder { + <0, 0, 0>, + <0, -1, 0>, 1000 + pigment { + radial + color_map{ + [0.1 rgb 0.1 ] + [0.1 White] + } + frequency 16 + } +} + +cylinder { + <-40, 0, -100> + <-40, 0, +100> + 0.5 + pigment { + color Blue + } +} +