From 2131fcfbeea91417ae541652bbd82caa8e7e8bca Mon Sep 17 00:00:00 2001 From: hjp Date: Sat, 16 Aug 2008 09:52:11 +0000 Subject: [PATCH] =?UTF-8?q?Feldschirmprojektoren=20auf=20Deck=203.=20Treib?= =?UTF-8?q?stofftanks=20schneiden=20sich=20nicht=20mehr=20mit=20Landest?= =?UTF-8?q?=C3=BCtzen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pr/schneller_kreuzer/deck_03.pov | 128 ++++++++++++++---- .../feldschirm_projektor_v.pov | 97 +++++++++++++ pr/schneller_kreuzer/test-deck_03.pov | 7 +- .../test-feldschirm_projektor_v.pov | 45 ++++++ 4 files changed, 251 insertions(+), 26 deletions(-) create mode 100644 pr/schneller_kreuzer/feldschirm_projektor_v.pov create mode 100644 pr/schneller_kreuzer/test-feldschirm_projektor_v.pov diff --git a/pr/schneller_kreuzer/deck_03.pov b/pr/schneller_kreuzer/deck_03.pov index 196c9a2..faa9902 100644 --- a/pr/schneller_kreuzer/deck_03.pov +++ b/pr/schneller_kreuzer/deck_03.pov @@ -1,5 +1,45 @@ #include "treibstofftank.pov" #include "landestuetze.pov" +#include "feldschirm_projektor_v.pov" + +#local Z = -40; + +#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 < 21) + #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_03 = union { @@ -53,29 +93,69 @@ } #end } - #local rr = 15.5; - #while (rr < 27.2) - #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; + #local aa = 0; + #local da = 60; + #while (aa <= 360 - da) + object { + feldschirm_projektor_v + rotate <0, aa, 0> + } + #local aa = aa + da; #end + + // 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 + } + 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> + } + 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> + } + } + #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 ii = ii + 1; + #end + + } - - diff --git a/pr/schneller_kreuzer/feldschirm_projektor_v.pov b/pr/schneller_kreuzer/feldschirm_projektor_v.pov new file mode 100644 index 0000000..7dec9b7 --- /dev/null +++ b/pr/schneller_kreuzer/feldschirm_projektor_v.pov @@ -0,0 +1,97 @@ +#include "metals.inc" +#local r1 = 41.0; + +#declare feldschirm_projektor_v = + union { + intersection { + union { + difference { + sphere { + <0, 0, 0>, r1 + } + sphere { + <0, 0, 0>, r1-0.5 + } + } + difference { + sphere { + <0, 0, 0>, r1-1.0 + } + sphere { + <0, 0, 0>, r1-1.5 + } + } + difference { + sphere { + <0, 0, 0>, r1-2.0 + } + sphere { + <0, 0, 0>, r1-2.5 + } + } + texture { pigment { rgb < 0.2, 0.2, 0.4 > } } + } + cone { + <0,0,0>, 0 + <0, -50, 0>, 5 + scale <0.5, 1, 1> + rotate <0, 0, 18> + texture { pigment { rgb < 0.2, 0.2, 0.2 > } } + } + } + intersection { + cone { + <0,0,0>, 0 + <0, -50, 0>, 1 + scale <1, 1, 0.5> + rotate <0, 0, 18> + texture { pigment { rgb < 1.2, 0.2, 0.2 > } } + } + cone { + <0, -35.2, 0>, 15, + <0, -39.8, 0>, 15 + } + } + + #local fsp_t = r1 - 3.2; + cone { + <-4, -fsp_t, 0>, fsp_t/50 * 0.5 + < 0, -fsp_t, 0>, fsp_t/50 * 0.5 + scale <1, 1, 1> + rotate <0, 0, 18> + texture { pigment { rgb < 1.2, 0.2, 0.2 > } } + } + + #local fsp_x = 9.0; + #local fsp_y = -40; + sphere { + <(fsp_x-0.5), (fsp_y+3.8), 0>, 1 + texture { T_Copper_3D } + } + cone { + <-0, 3.6, 0>, 1 + <-0, 0, 0>, 1.5 + matrix < + 1, 0, 0, + -0.5/3.6, 1, 0, + 0, 0, 1, + 0, 0, 0 + > + + translate + texture { pigment { rgb < 1, 0.9, 1 > } } + } + cone { + <(fsp_x-0.5), (fsp_y+2), -3>, 0.5 + <(fsp_x-0.5), (fsp_y+2), +3>, 0.5 + texture { pigment { rgb < 1, 0.8, 1 > } } + } + sphere { + <(fsp_x-0.5), (fsp_y+2), -3>, 0.6 + texture { T_Copper_3D } + } + sphere { + <(fsp_x-0.5), (fsp_y+2), +3>, 0.6 + texture { T_Copper_3D } + } + } diff --git a/pr/schneller_kreuzer/test-deck_03.pov b/pr/schneller_kreuzer/test-deck_03.pov index 3737d64..2444477 100644 --- a/pr/schneller_kreuzer/test-deck_03.pov +++ b/pr/schneller_kreuzer/test-deck_03.pov @@ -5,6 +5,7 @@ #include "stones.inc" #declare SCHNITT_1 = 1; // Quadrant -/*/- +#local LANDESTUETZEN = 0; global_settings { assumed_gamma 1.0 @@ -16,7 +17,7 @@ light_source { color White } -#local CP = <-100, 50, -100>; +#local CP = <25, 95, -0>; light_source { CP color White*0.5 @@ -24,7 +25,7 @@ light_source { camera { orthographic location CP - look_at <-0, 10, 0> + look_at <25, 20.0, 0> angle 20 } @@ -35,6 +36,7 @@ union { object { deck_03 } + #if (LANDESTUETZEN) #local i = 0; #while (i < 12) object { @@ -43,6 +45,7 @@ union { } #local i = i + 1; #end + #end cylinder { <100, -43, -100>, <100, -43, +100>, diff --git a/pr/schneller_kreuzer/test-feldschirm_projektor_v.pov b/pr/schneller_kreuzer/test-feldschirm_projektor_v.pov new file mode 100644 index 0000000..9d4fcb4 --- /dev/null +++ b/pr/schneller_kreuzer/test-feldschirm_projektor_v.pov @@ -0,0 +1,45 @@ +#include "colors.inc" +#include "feldschirm_projektor_v.pov" + +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 <12.5, -37.5, -30> + look_at <12.5, -37.5, 0> + angle 40 +} + + object { + feldschirm_projektor_v + } + +cylinder { + <0, -39.8, 0>, + <0, -40.2, 0>, 15 + pigment { + radial + color_map{ + [0.1 rgb 0.1 ] + [0.1 White] + } + frequency 16 + } +} + +cylinder { + <0, -35, 0>, + <15, -35, 0>, 0.2 + color Red*0.5 +}