welcome here, hexa-patrol
This commit is contained in:
parent
6a983ee560
commit
606536c3f3
6
Makefile
6
Makefile
@ -21,9 +21,13 @@ PNG: essai.png scene.png topview.png passage.png \
|
|||||||
hexacone.png remote.png survol.png cutoff.png \
|
hexacone.png remote.png survol.png cutoff.png \
|
||||||
carto.png hexawood.png bubblecut.png \
|
carto.png hexawood.png bubblecut.png \
|
||||||
circular.png panoramic.png splined.png \
|
circular.png panoramic.png splined.png \
|
||||||
trident.png approche.png hexastar.png
|
trident.png approche.png hexastar.png \
|
||||||
|
patrouille.png
|
||||||
echo "make PNG ck=$(CK) done" >> WS/log
|
echo "make PNG ck=$(CK) done" >> WS/log
|
||||||
|
|
||||||
|
patrouille.png: patrouille.pov Makefile $(POVDEP)
|
||||||
|
povray $(POVOPT) $(DIMS) -K$(CK) -i$< -o$@
|
||||||
|
|
||||||
around.png: around.pov Makefile $(POVDEP)
|
around.png: around.pov Makefile $(POVDEP)
|
||||||
povray $(POVOPT) $(DIMS) -K$(CK) -i$< -o$@
|
povray $(POVOPT) $(DIMS) -K$(CK) -i$< -o$@
|
||||||
|
|
||||||
|
|||||||
1
TODO.md
1
TODO.md
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
- Songer à un cadriciel pour la piste son.
|
- Songer à un cadriciel pour la piste son.
|
||||||
- Trouver un compositeur et les musiciens.
|
- Trouver un compositeur et les musiciens.
|
||||||
|
- Étudier à fond la documentation de `sox`
|
||||||
|
|
||||||
## ... en bref ...
|
## ... en bref ...
|
||||||
|
|
||||||
|
|||||||
@ -69,9 +69,9 @@ merge {
|
|||||||
cylinder { <0, Epp, -K*0.9>, <0, Epp, K*0.9>, K }
|
cylinder { <0, Epp, -K*0.9>, <0, Epp, K*0.9>, K }
|
||||||
#local R = rand(Rng1);
|
#local R = rand(Rng1);
|
||||||
#if (R < 0.63)
|
#if (R < 0.63)
|
||||||
texture { T_Grnt6 scale 4 }
|
texture { T_Grnt6 scale 4 }
|
||||||
#else
|
#else
|
||||||
texture { T_Stone34 scale 3 }
|
texture { T_Stone34 scale 3+rand(Rng2) }
|
||||||
#end
|
#end
|
||||||
}
|
}
|
||||||
#end // macro
|
#end // macro
|
||||||
@ -82,7 +82,7 @@ merge {
|
|||||||
#local K = 0.36;
|
#local K = 0.36;
|
||||||
box { <-L, 0, -K>, <L, Epp, K> }
|
box { <-L, 0, -K>, <L, Epp, K> }
|
||||||
cylinder { <0, Epp, -K*0.9>, <0, Epp, K*0.9>, K }
|
cylinder { <0, Epp, -K*0.9>, <0, Epp, K*0.9>, K }
|
||||||
texture { T_WIP_rasta }
|
texture { T_WIP_dents rotate y*(rand(Rng1)*77) }
|
||||||
}
|
}
|
||||||
#end // macro
|
#end // macro
|
||||||
|
|
||||||
|
|||||||
@ -21,11 +21,11 @@ object { Le_Decor }
|
|||||||
|
|
||||||
#declare CamX = R_around * cos(CK);
|
#declare CamX = R_around * cos(CK);
|
||||||
#declare CamY = 15.777 + (4*Cos_010(NormClock));
|
#declare CamY = 15.777 + (4*Cos_010(NormClock));
|
||||||
#declare CamZ = R_around * sin(CK);
|
#declare CamZ = R_around * 1.5 * sin(CK);
|
||||||
|
|
||||||
camera {
|
camera {
|
||||||
location <CamX, CamY, CamZ>
|
location <CamX, CamY, CamZ>
|
||||||
look_at <0, 2, 0>
|
look_at <0, 2, 0>
|
||||||
right <image_width/image_height, 0, 0>
|
right <image_width/image_height, 0, 0>
|
||||||
angle 45
|
angle 44
|
||||||
}
|
}
|
||||||
|
|||||||
20
carto.pov
20
carto.pov
@ -13,22 +13,24 @@
|
|||||||
#include "all.inc"
|
#include "all.inc"
|
||||||
|
|
||||||
// ---------------------------------------------------------
|
// ---------------------------------------------------------
|
||||||
|
object { Repere scale 20 translate y*20 }
|
||||||
// ---------------------------------------------------------
|
// ---------------------------------------------------------
|
||||||
// dessiner une grille
|
// dessiner une grille
|
||||||
|
union {
|
||||||
#for (Foo, -140, 140, 10)
|
#for (Foo, -140, 140, 10)
|
||||||
#local H = 0.17;
|
#local H = 0.07;
|
||||||
cylinder { <-150, H, Foo>, <150, H, Foo>, 0.06 }
|
#local Ra = 0.05;
|
||||||
cylinder { <Foo, H, -150>, <Foo, H, 150>, 0.06 }
|
cylinder { <-150, H, Foo>, <150, H, Foo>, Ra }
|
||||||
#end
|
cylinder { <Foo, H, -150>, <Foo, H, 150>, Ra }
|
||||||
|
#end
|
||||||
|
pigment { color Black }
|
||||||
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------
|
// ---------------------------------------------------------
|
||||||
|
|
||||||
object { Repere scale 20 translate y*20 }
|
|
||||||
object { Le_Decor }
|
object { Le_Decor }
|
||||||
|
|
||||||
camera {
|
camera {
|
||||||
location <45, 179+(76*NormClock), 18-(17*NormClock)>
|
location <45, 149+(99*NormClock), 18-(12*NormClock)>
|
||||||
look_at <0, 1.18, 0.17 + (2.4*NormClock)>
|
look_at <0, 1.18, 0.17 + (2.4*NormClock)>
|
||||||
right <image_width/image_height, 0, 0>
|
right <image_width/image_height, 0, 0>
|
||||||
angle 50
|
angle 50
|
||||||
|
|||||||
@ -26,12 +26,12 @@ object { Le_Decor }
|
|||||||
#declare AV = 0.070;
|
#declare AV = 0.070;
|
||||||
#declare LatX = R_circ * 0.96 * cos(CK + AV);
|
#declare LatX = R_circ * 0.96 * cos(CK + AV);
|
||||||
#declare LatY = 2.65;
|
#declare LatY = 2.65;
|
||||||
#declare LatZ = R_circ * 0.97 * sin(CK + AV);
|
#declare LatZ = R_circ * 0.95 * sin(CK + AV);
|
||||||
|
|
||||||
camera {
|
camera {
|
||||||
location <CamX, CamY, CamZ>
|
location <CamX, CamY, CamZ>
|
||||||
look_at <LatX, LatY, LatZ>
|
look_at <LatX, LatY, LatZ>
|
||||||
right <image_width/image_height, 0, 0>
|
right <image_width/image_height, 0, 0>
|
||||||
angle 60
|
angle 64
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
60
contexte.inc
60
contexte.inc
@ -11,8 +11,8 @@
|
|||||||
#macro Trois_Portiques (Dist)
|
#macro Trois_Portiques (Dist)
|
||||||
union {
|
union {
|
||||||
object { Portique_A () }
|
object { Portique_A () }
|
||||||
object { Portique_A () scale <1, 1.15, 1> translate z*5 }
|
object { Portique_A () scale <1, 1.2, 1> translate z*11 }
|
||||||
object { Portique_A () translate z*10 }
|
object { Portique_A () rotate y*11 translate z*22 }
|
||||||
// XXX scale 1.85
|
// XXX scale 1.85
|
||||||
}
|
}
|
||||||
#end // macro trois portiques
|
#end // macro trois portiques
|
||||||
@ -22,17 +22,13 @@ union {
|
|||||||
* essai du 12 mars 2025
|
* essai du 12 mars 2025
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#declare RedB_0_X = 19;
|
#declare RedB_0_X = 19; #declare RedB_0_Z = 29;
|
||||||
#declare RedB_0_Z = 29;
|
|
||||||
|
|
||||||
#declare RedB_1_X = -24;
|
#declare RedB_1_X = -24; #declare RedB_1_Z = 8;
|
||||||
#declare RedB_1_Z = 8;
|
|
||||||
|
|
||||||
#declare RedB_2_X = 36;
|
#declare RedB_2_X = 36; #declare RedB_2_Z = -21;
|
||||||
#declare RedB_2_Z = -21;
|
|
||||||
|
|
||||||
#declare RedB_3_X = 42;
|
#declare RedB_3_X = 42; #declare RedB_3_Z = -5;
|
||||||
#declare RedB_3_Z = -5;
|
|
||||||
|
|
||||||
#declare Pos_RedB_0 = <RedB_0_X, 0, RedB_0_Z>;
|
#declare Pos_RedB_0 = <RedB_0_X, 0, RedB_0_Z>;
|
||||||
#declare Pos_RedB_1 = <RedB_1_X, 0, RedB_1_Z>;
|
#declare Pos_RedB_1 = <RedB_1_X, 0, RedB_1_Z>;
|
||||||
@ -69,7 +65,7 @@ union {
|
|||||||
#local R = rand(Rng1);
|
#local R = rand(Rng1);
|
||||||
#if (R < 0.33) texture { T_Stone25 scale 1+rand(Rng1) }
|
#if (R < 0.33) texture { T_Stone25 scale 1+rand(Rng1) }
|
||||||
#elseif (R < 0.66) texture { T_Stone15 scale 1+rand(Rng1) }
|
#elseif (R < 0.66) texture { T_Stone15 scale 1+rand(Rng1) }
|
||||||
#else texture { T_Stone6 }
|
#else texture { T_Stone6 scale 1+rand(Rng1) }
|
||||||
#end
|
#end
|
||||||
#undef R
|
#undef R
|
||||||
}
|
}
|
||||||
@ -112,7 +108,7 @@ union {
|
|||||||
|
|
||||||
#macro Les_GyroPhares ()
|
#macro Les_GyroPhares ()
|
||||||
union {
|
union {
|
||||||
#local E = SzSol * 0.455;
|
#local E = SzSol * 0.471;
|
||||||
#for (Idx, 0, 359, 60)
|
#for (Idx, 0, 359, 60)
|
||||||
#local Ang = radians(Idx+9.33);
|
#local Ang = radians(Idx+9.33);
|
||||||
#local Dx = E * sin(Ang);
|
#local Dx = E * sin(Ang);
|
||||||
@ -125,11 +121,10 @@ union {
|
|||||||
/* ======================================================= */
|
/* ======================================================= */
|
||||||
/* 11 avril 2025, je pose un grand cercle d'hexapoles
|
/* 11 avril 2025, je pose un grand cercle d'hexapoles
|
||||||
* 9 octobre 2025, je rajoute un rail circulaire
|
* 9 octobre 2025, je rajoute un rail circulaire
|
||||||
|
* les navettes qui circulent sont dans 'dynamic.inc'
|
||||||
*/
|
*/
|
||||||
#declare Les_HexaPoles = object
|
#declare Les_HexaPoles = object
|
||||||
{
|
{
|
||||||
|
|
||||||
union {
|
union {
|
||||||
#for (Ang, 0, 359, 6)
|
#for (Ang, 0, 359, 6)
|
||||||
#local De = 3.6 + (0.5*rand(Rng1));
|
#local De = 3.6 + (0.5*rand(Rng1));
|
||||||
@ -233,11 +228,12 @@ blob {
|
|||||||
|
|
||||||
#for (Idx, 0, 5)
|
#for (Idx, 0, 5)
|
||||||
#local Angle = (Idx + 0.19) * 1.09; // magic numbers ?
|
#local Angle = (Idx + 0.19) * 1.09; // magic numbers ?
|
||||||
#local Px = sin(Angle) * (SzSol * 0.98);
|
#local Kr = 6 - (rand(Rng1)*3);
|
||||||
#local Pz = cos(Angle) * (SzSol * 1.02);
|
#local Px = Kr + sin(Angle) * (SzSol * 0.98);
|
||||||
|
#local Kr = 6 - (rand(Rng1)*3);
|
||||||
|
#local Pz = Kr + cos(Angle) * (SzSol * 1.02);
|
||||||
#ifdef (DEBUG_LEVEL)
|
#ifdef (DEBUG_LEVEL)
|
||||||
#write (Trid, "Def ", Idx, " ", NormClock, " ", Px, " ", Pz, "\n")
|
#write (Trid, "Def_", Idx, " ", NormClock, " ", Px, " ", Pz, "\n")
|
||||||
#end
|
#end
|
||||||
// put the coords in the array.
|
// put the coords in the array.
|
||||||
#declare UnderHoles[Idx] = <Px, 0, Pz>;
|
#declare UnderHoles[Idx] = <Px, 0, Pz>;
|
||||||
@ -261,13 +257,21 @@ difference {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 10 fev 2026, on place des bordures autour des trous */
|
/* 10 fev 2026, on place des bordures autour des trous */
|
||||||
/* -> xperiment.inc */
|
/* voir aussi -> xperiment.inc */
|
||||||
#for (foo, 0, 5)
|
#declare Les_Bordures = object
|
||||||
#local YHB = (0.08 + (0.5*rand(Rng1)) * y);
|
{
|
||||||
object { HoleBorder (1.14) translate YHB + UnderHoles[foo] }
|
union {
|
||||||
#end
|
#for (foo, 0, 5)
|
||||||
|
// #local YHB = (0.08 + (0.5*rand(Rng1)) * y);
|
||||||
|
#if (rand(Rng1) < 0.5)
|
||||||
|
object { HoleBorder_A (1.04) translate UnderHoles[foo] }
|
||||||
|
#else
|
||||||
|
object { HoleBorder_B (1.06) translate UnderHoles[foo] }
|
||||||
|
#end // if
|
||||||
|
#end // for
|
||||||
|
}
|
||||||
|
}
|
||||||
/* ======================================================= */
|
/* ======================================================= */
|
||||||
/*
|
/*
|
||||||
* nouvel éclairage du 10 février 2025
|
* nouvel éclairage du 10 février 2025
|
||||||
@ -302,7 +306,7 @@ rotate -19 * y
|
|||||||
union {
|
union {
|
||||||
/* a l'interieur du 'circular' */
|
/* a l'interieur du 'circular' */
|
||||||
object { Chose () translate <-25, 0, -31> }
|
object { Chose () translate <-25, 0, -31> }
|
||||||
object { Chose () translate < 20, 0, -32> }
|
object { Chose () translate < 20, 0, -36> }
|
||||||
/* a l'exterieur du 'circular' */
|
/* a l'exterieur du 'circular' */
|
||||||
#for (foo, 0, 359, 18)
|
#for (foo, 0, 359, 18)
|
||||||
#local CK = radians(foo + (9*rand(Rng1)));
|
#local CK = radians(foo + (9*rand(Rng1)));
|
||||||
@ -376,6 +380,7 @@ sky_sphere {
|
|||||||
{
|
{
|
||||||
union {
|
union {
|
||||||
object { Underground }
|
object { Underground }
|
||||||
|
object { Les_Bordures }
|
||||||
|
|
||||||
#include "groundbase.inc"
|
#include "groundbase.inc"
|
||||||
object { La_GroundBase }
|
object { La_GroundBase }
|
||||||
@ -393,7 +398,8 @@ union {
|
|||||||
object { QuadriLight }
|
object { QuadriLight }
|
||||||
object { Les_GyroPhares () }
|
object { Les_GyroPhares () }
|
||||||
object { Les_HexaPoles }
|
object { Les_HexaPoles }
|
||||||
object { Horloge rotate y*27 translate < 3, 0, -30> }
|
object { HorlogeDouble rotate y*(27*NormClock)
|
||||||
|
translate < 3, 0, -30> }
|
||||||
object { Les_Choses }
|
object { Les_Choses }
|
||||||
object { Les_Arches (1.9) rotate y*132 translate <-34, 0, -26> }
|
object { Les_Arches (1.9) rotate y*132 translate <-34, 0, -26> }
|
||||||
|
|
||||||
|
|||||||
22
dynamic.inc
22
dynamic.inc
@ -5,25 +5,25 @@
|
|||||||
// rajout d'une patrouille en vol
|
// rajout d'une patrouille en vol
|
||||||
// 2 janvier 2026
|
// 2 janvier 2026
|
||||||
|
|
||||||
#local CK = clock / 150; // en radians
|
|
||||||
#local RD = 63; // rayon deplacement
|
|
||||||
#local Xp = RD * sin(CK);
|
|
||||||
#local Zp = RD * cos(CK);
|
|
||||||
|
|
||||||
object {
|
object {
|
||||||
object { Patrouille }
|
#local CK = clock / 210; // en radians
|
||||||
rotate y*degrees(CK)
|
#local RD = 63; // rayon deplacement
|
||||||
translate <Xp, 79+(11*NormClock), Zp>
|
#local Xp = RD * sin(CK);
|
||||||
translate <-30, 0, 0>
|
#local Zp = RD * cos(CK);
|
||||||
}
|
#declare Loc_Patrouille = <Xp+10, 75+(11*NormClock), Zp>;
|
||||||
|
|
||||||
|
object { Patrouille }
|
||||||
|
rotate y*degrees(CK)
|
||||||
|
translate Loc_Patrouille
|
||||||
|
}
|
||||||
|
|
||||||
// =======================================================
|
// =======================================================
|
||||||
// on va tenter de placer quelques trucs
|
// on va tenter de placer quelques trucs
|
||||||
// qui bougent sur le rail circulaire
|
// qui bougent sur le rail circulaire
|
||||||
|
|
||||||
#for (foo, 0, 5)
|
#for (foo, 0, 5)
|
||||||
#local CK = (NormClock+(foo*0.0200)) * 4.02; // radians
|
#local CK = (NormClock+(foo*0.0200)) * 4.05; // radians
|
||||||
#declare Xpos = R_circular * sin(CK);
|
#declare Xpos = R_circular * sin(CK);
|
||||||
#declare Zpos = R_circular * cos(CK);
|
#declare Zpos = R_circular * cos(CK);
|
||||||
#declare AR = degrees(CK);
|
#declare AR = degrees(CK);
|
||||||
@ -62,7 +62,7 @@ object { BiBenz rotate -y*(clock*0.26) translate Pos_RedB_0 }
|
|||||||
#local K = 1.27;
|
#local K = 1.27;
|
||||||
union {
|
union {
|
||||||
object { HexaCone () rotate y*90 translate <-K, 1.7, 0> }
|
object { HexaCone () rotate y*90 translate <-K, 1.7, 0> }
|
||||||
object { HexaCone () rotate <4, 1, 7> translate < K, 1.9, 0> }
|
object { HexaCone () rotate <9, 1, 7> translate < K, 1.9, 0> }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
object { BiCone rotate -y*(Cos_010(NormClock)*65.38) translate Pos_RedB_1 }
|
object { BiCone rotate -y*(Cos_010(NormClock)*65.38) translate Pos_RedB_1 }
|
||||||
|
|||||||
150
essai.pov
150
essai.pov
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
#version 3.7;
|
#version 3.7;
|
||||||
|
|
||||||
#declare DEBUG_LEVEL = 1; // un nouveau test ?
|
// #declare DEBUG_LEVEL = 1; // un nouveau test ?
|
||||||
|
|
||||||
#include "globals.inc"
|
#include "globals.inc"
|
||||||
#declare NO_DYNAMIC = 1;
|
#declare NO_DYNAMIC = 1;
|
||||||
@ -16,24 +16,27 @@
|
|||||||
-* __________________________
|
-* __________________________
|
||||||
*/
|
*/
|
||||||
// =======================================================
|
// =======================================================
|
||||||
// nouveau du 3 janvier 2026
|
// nouveau du 10 février 2026
|
||||||
#local Horloge2 = object
|
#macro Anemone_A (E, H)
|
||||||
{
|
union {
|
||||||
object { Horloge scale <1, 0.24, 1> rotate -x*90
|
#for (foo, 0, 5)
|
||||||
translate x*0.45 }
|
#local A = radians(foo*60);
|
||||||
}
|
#local DX = E * sin(A);
|
||||||
#declare HorlogeDouble = object
|
#local DZ = E * cos(A);
|
||||||
{
|
cone { y*(H/8), 0.20, <DX, H, DZ>, 0.001
|
||||||
union {
|
#local Rv = 0.7 + (0.2*rand(Rng1));
|
||||||
box { <-3.20, -0.08, -0.07>, <3.20, 1.61, 0.07>
|
#local Gv = 0.6 + (0.2*rand(Rng1));
|
||||||
texture { LeGris } }
|
#local Bv = 0.6 + (0.3*rand(Rng1));
|
||||||
#local EC = 0.22;
|
texture {
|
||||||
object { Horloge2 rotate y*180 translate z*EC }
|
pigment { rgb <Rv, Gv, Bv> }
|
||||||
object { Horloge2 translate -z*EC }
|
finish { phong 0.51 reflection 0.05 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sphere { 0, 0.45 texture { T_WIP_color } }
|
||||||
|
#end // for
|
||||||
}
|
}
|
||||||
scale 0.8
|
#end // macro
|
||||||
translate y*2.35
|
|
||||||
}
|
|
||||||
// =======================================================
|
// =======================================================
|
||||||
/*
|
/*
|
||||||
* new Thu Dec 18 01:14:19 AM UTC 2025
|
* new Thu Dec 18 01:14:19 AM UTC 2025
|
||||||
@ -122,78 +125,25 @@ merge {
|
|||||||
|
|
||||||
// -------------------------------------------------------
|
// -------------------------------------------------------
|
||||||
|
|
||||||
#declare BasicTextures = object
|
|
||||||
{
|
|
||||||
#local TR = 2.20;
|
|
||||||
union {
|
|
||||||
object { Obj_BasicTexture texture { R_Texture }
|
|
||||||
translate <TR*1.4, 0, 0> }
|
|
||||||
object { Obj_BasicTexture texture { G_Texture }
|
|
||||||
translate <0, 0, -1> }
|
|
||||||
object { Obj_BasicTexture texture { B_Texture }
|
|
||||||
translate <0, 0, TR/2> }
|
|
||||||
|
|
||||||
object { Obj_BasicTexture texture { Y_Texture }
|
|
||||||
translate < TR, 0, TR> }
|
|
||||||
object { Obj_BasicTexture texture { M_Texture }
|
|
||||||
translate <-TR, 0, TR> }
|
|
||||||
object { Obj_BasicTexture texture { C_Texture }
|
|
||||||
translate <-TR, 0, -TR> }
|
|
||||||
object { Repere scale 1.5 translate y*2.5 }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// -------------------------------------------------------
|
|
||||||
/*
|
|
||||||
* Après lecture de la doc (et une bonne 8.6), j'ai
|
|
||||||
* décidé de me lancer dans la création de textures
|
|
||||||
*/
|
|
||||||
|
|
||||||
#declare T_WIP_R = texture
|
|
||||||
{
|
|
||||||
pigment { color Red }
|
|
||||||
finish { phong 0.42 ambient 0.50 }
|
|
||||||
}
|
|
||||||
|
|
||||||
#declare T_WIP_G = texture
|
|
||||||
{
|
|
||||||
pigment { color Green }
|
|
||||||
finish { phong 0.23 ambient 0.30 }
|
|
||||||
}
|
|
||||||
|
|
||||||
#declare T_WIP_B = texture
|
|
||||||
{
|
|
||||||
pigment { color Blue }
|
|
||||||
finish { phong 0.23 ambient 0.50 }
|
|
||||||
}
|
|
||||||
|
|
||||||
// deuxieme lot ----------------------
|
|
||||||
#declare T_WIP_1 = texture
|
|
||||||
{
|
|
||||||
pigment { color <0.36, 0.6, 0.79> }
|
|
||||||
normal { dents 2.94 scale 0.5 }
|
|
||||||
finish { specular 0.40 ambient 0.69 }
|
|
||||||
}
|
|
||||||
|
|
||||||
// -------------------------------------------------------
|
// -------------------------------------------------------
|
||||||
// the place to try new textures
|
// the place to try new textures
|
||||||
#declare ProtoTextures = object
|
#declare ProtoTextures = object
|
||||||
{
|
{
|
||||||
#local TX = 2.35;
|
#local TX = 2.55;
|
||||||
#local TZ = 2.95;
|
#local TZ = 2.95;
|
||||||
#local Kro = 32 + (NormClock * 17);
|
#local Kro = 32 + (NormClock * 37);
|
||||||
union {
|
union {
|
||||||
object { Obj_BasicTexture texture { T_WIP_R }
|
object { Obj_BasicTexture texture { R_Texture }
|
||||||
rotate y * (rand(Rng1)*Kro)
|
rotate y * (rand(Rng1)*Kro)
|
||||||
translate <TX, 0, -TZ> }
|
translate <TX, 0, -TZ> }
|
||||||
object { Obj_BasicTexture texture { T_WIP_G }
|
object { Obj_BasicTexture texture { G_Texture }
|
||||||
rotate y * (rand(Rng1)*Kro)
|
rotate y * (rand(Rng1)*Kro)
|
||||||
translate <TX, 0, 0> }
|
translate <TX, 0, 0> }
|
||||||
object { Obj_BasicTexture texture { T_WIP_B }
|
object { Obj_BasicTexture texture { B_Texture }
|
||||||
rotate y * (rand(Rng1)*Kro)
|
rotate y * (rand(Rng1)*Kro)
|
||||||
translate <TX, 0, TZ> }
|
translate <TX, 0, TZ> }
|
||||||
|
|
||||||
object { Obj_BasicTexture texture { T_WIP_1 }
|
object { Obj_BasicTexture texture { T_WIP_dents }
|
||||||
rotate y * (rand(Rng1)*Kro)
|
rotate y * (rand(Rng1)*Kro)
|
||||||
translate <-TX, 0, TZ> }
|
translate <-TX, 0, TZ> }
|
||||||
object { Obj_BasicTexture texture { T_WIP_rasta }
|
object { Obj_BasicTexture texture { T_WIP_rasta }
|
||||||
@ -252,11 +202,11 @@ object { GyroTrucs }
|
|||||||
#declare Architecture = object
|
#declare Architecture = object
|
||||||
{
|
{
|
||||||
union {
|
union {
|
||||||
object { Portique_A () translate z*4 }
|
object { Portique_A () translate z*6.5 }
|
||||||
object { Portique_A () scale 2 translate z*2 }
|
object { Portique_A () scale 2 translate z*2 }
|
||||||
object { Portique_A () scale 1.5 }
|
object { Portique_A () scale 1.8 }
|
||||||
object { Portique_A () scale 2 translate -z*2 }
|
object { Portique_A () scale 2 translate -z*3 }
|
||||||
object { Portique_A () translate -z*4 }
|
object { Portique_A () rotate y*9 translate -z*6.5 }
|
||||||
// object { Fleche translate y }
|
// object { Fleche translate y }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -265,18 +215,18 @@ union {
|
|||||||
#debug " !!! ACTION !!!\n"
|
#debug " !!! ACTION !!!\n"
|
||||||
|
|
||||||
light_source {
|
light_source {
|
||||||
<-18, 54, -7>
|
<-19, 44, -7>
|
||||||
colour Gray50
|
colour Gray40
|
||||||
parallel
|
parallel
|
||||||
point_at 0
|
point_at 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------ ##
|
// ------------------------------------------------------ ##
|
||||||
|
|
||||||
#declare Selector = mod(int(clock/80), 8);
|
#declare Selector = int(clock/57);
|
||||||
#debug concat("Selector = ", str(Selector, 6, 0), "\n")
|
#debug concat("Selector = ", str(Selector, 6, 0), "\n")
|
||||||
|
|
||||||
#declare AngleCam = 17 - 3*Cos_01(NormClock);
|
#declare AngleCam = 27 - 3*Cos_01(NormClock);
|
||||||
|
|
||||||
#switch (Selector)
|
#switch (Selector)
|
||||||
#case (0)
|
#case (0)
|
||||||
@ -287,27 +237,35 @@ union {
|
|||||||
#local AngleCam = 31.0;
|
#local AngleCam = 31.0;
|
||||||
#break
|
#break
|
||||||
#case (2)
|
#case (2)
|
||||||
object { Le_ConeStack () translate y*0.20 }
|
object { HoleBorder_A (2.12) translate y }
|
||||||
#break
|
#break
|
||||||
#case (3)
|
#case (3)
|
||||||
object { HorlogeDouble rotate -y*(5*clock) }
|
object { HorlogeDouble scale 2 rotate -y*(6*clock) }
|
||||||
// object { Repere translate y*1 }
|
object { Repere translate y*1 }
|
||||||
#break
|
#break
|
||||||
#case (4)
|
#case (4)
|
||||||
object { Trident_A ()
|
object { Trident_A ()
|
||||||
scale 1.8
|
scale 1.8
|
||||||
rotate <35, 0, 12> translate 2.2*y
|
rotate <35, 0, 12> translate 2.6*y
|
||||||
rotate -y*(clock*2) }
|
rotate -y*(clock*2) }
|
||||||
#break
|
#break
|
||||||
#case (5)
|
#case (5)
|
||||||
object { Les_Boules translate y*0.8 }
|
object { Anemone_A (3.10-NormClock, 1.50+NormClock)
|
||||||
|
translate < 4, 0, 0> }
|
||||||
|
object { Anemone_A (2.40-NormClock, 2.50+NormClock)
|
||||||
|
translate <-4, 0, 0> }
|
||||||
|
object { Anemone_A (1.40+NormClock, 1.50*NormClock)
|
||||||
|
translate < 0, 0, -4> }
|
||||||
|
object { Anemone_A (1.40+NormClock, 1.50-NormClock)
|
||||||
|
translate < 0, 0, 4> }
|
||||||
|
object { Repere }
|
||||||
#break
|
#break
|
||||||
#case (6)
|
#case (6)
|
||||||
object { HexaStar scale 3 translate y*3 }
|
object { HexaStar scale 3 rotate y*(clock*0.5) translate y*3 }
|
||||||
#break
|
#break
|
||||||
#case (7)
|
#case (7)
|
||||||
#local Pos = <0.5-NormClock, 0, 0>;
|
#local Pos = <0.5-NormClock, 0, 0>;
|
||||||
object { ProtoTextures rotate -y*clock translate 0 }
|
object { ProtoTextures rotate -y*(55*Cos_01(NormClock)) }
|
||||||
#break
|
#break
|
||||||
|
|
||||||
#end // switch selector
|
#end // switch selector
|
||||||
@ -320,17 +278,19 @@ plane {
|
|||||||
// =======================================================
|
// =======================================================
|
||||||
|
|
||||||
#local CamX = -2.7 + (1.8*Cos_010(NormClock));
|
#local CamX = -2.7 + (1.8*Cos_010(NormClock));
|
||||||
#local CamY = 0.61 + (1.1*exp(NormClock));
|
#local CamY = 0.61 + (0.9*exp(NormClock));
|
||||||
#local CamZ = -5.777 + (1.2*Cos_01(NormClock));
|
#local CamZ = -5.777 + (1.2*Cos_01(NormClock));
|
||||||
|
|
||||||
#local K = 8.6;
|
#local K = 8.6;
|
||||||
#local CamX = CamX * K;
|
#local CamX = CamX * K;
|
||||||
#local CamY = CamY * K * 0.61;
|
#local CamY = CamY * K * 0.41;
|
||||||
#local CamZ = CamZ * K;
|
#local CamZ = CamZ * K;
|
||||||
|
|
||||||
camera {
|
camera {
|
||||||
|
orthographic
|
||||||
location <CamX, CamY, CamZ>
|
location <CamX, CamY, CamZ>
|
||||||
look_at <0, 1.6, 0>
|
look_at <0, 1.6, 0>
|
||||||
|
|
||||||
right <image_width/image_height, 0, 0>
|
right <image_width/image_height, 0, 0>
|
||||||
angle AngleCam
|
angle AngleCam
|
||||||
}
|
}
|
||||||
|
|||||||
26
gadgets.inc
26
gadgets.inc
@ -119,13 +119,31 @@ union {
|
|||||||
text {
|
text {
|
||||||
// ttf "datas/DSEG7Classic-Regular.ttf" Texte 0.1, 0
|
// ttf "datas/DSEG7Classic-Regular.ttf" Texte 0.1, 0
|
||||||
ttf "datas/ComicMono-Bold.ttf" Texte 0.1, 0
|
ttf "datas/ComicMono-Bold.ttf" Texte 0.1, 0
|
||||||
texture { tPlasticPrune }
|
texture { tPlasticBlue }
|
||||||
}
|
}
|
||||||
scale 2.10
|
scale 1.96
|
||||||
rotate 90*x
|
rotate 90*x
|
||||||
translate <-4.5, 0.043, 0>
|
translate <-4.5, 0.046, 0>
|
||||||
|
}
|
||||||
|
// =======================================================
|
||||||
|
// nouveau du 3 janvier 2026
|
||||||
|
#local Horloge2 = object
|
||||||
|
{
|
||||||
|
object { Horloge scale <1, 0.28, 1> rotate -x*90
|
||||||
|
translate <0.442, 0.14, 0> }
|
||||||
|
}
|
||||||
|
#declare HorlogeDouble = object
|
||||||
|
{
|
||||||
|
union {
|
||||||
|
box { <-3.20, 0.0, -0.07>, <3.20, 1.64, 0.07>
|
||||||
|
texture { LeGris } }
|
||||||
|
#local EC = 0.19;
|
||||||
|
object { Horloge2 rotate y*180 translate z*EC }
|
||||||
|
object { Horloge2 translate -z*EC }
|
||||||
|
}
|
||||||
|
scale 0.51
|
||||||
|
translate y*1.35
|
||||||
}
|
}
|
||||||
|
|
||||||
// =======================================================
|
// =======================================================
|
||||||
/*
|
/*
|
||||||
* need more work !
|
* need more work !
|
||||||
|
|||||||
@ -123,7 +123,7 @@ finish { roughness 1.00 }
|
|||||||
|
|
||||||
#declare tPlasticBlue = texture
|
#declare tPlasticBlue = texture
|
||||||
{
|
{
|
||||||
pigment{rgb <0.50, 0, 2.0>}
|
pigment{rgb <0.20, 0, 2.0>}
|
||||||
finish {
|
finish {
|
||||||
ambient 0.1
|
ambient 0.1
|
||||||
diffuse 0.6
|
diffuse 0.6
|
||||||
|
|||||||
17
hexastar.inc
17
hexastar.inc
@ -12,10 +12,10 @@
|
|||||||
|
|
||||||
#macro HS_element_pointe ()
|
#macro HS_element_pointe ()
|
||||||
union {
|
union {
|
||||||
#local R_a = HS_radius * 0.33333;
|
#local R_a = HS_radius * 0.369;
|
||||||
#local Small = 0.00001;
|
#local Small = 0.00001;
|
||||||
cone { <-1.34, 0, 0>, Small, <-0.6, 0, 0>, R_a }
|
cone { <-1.34, 0, 0>, Small, <-0.6, 0, 0>, R_a }
|
||||||
sphere { 0, R_a scale <0.3, 1, 1> translate <-0.6, 0, 0> }
|
sphere { 0, R_a scale <0.42, 1, 1> translate <-0.6, 0, 0> }
|
||||||
#local R = rand(Rng1);
|
#local R = rand(Rng1);
|
||||||
#if ( R < 0.45 ) texture { GoldDark }
|
#if ( R < 0.45 ) texture { GoldDark }
|
||||||
#elseif ( R < 0.60 ) texture { Aluminum }
|
#elseif ( R < 0.60 ) texture { Aluminum }
|
||||||
@ -35,9 +35,9 @@ union {
|
|||||||
// le noyau central
|
// le noyau central
|
||||||
#local L = 0.0028;
|
#local L = 0.0028;
|
||||||
#local R = 0.0577;
|
#local R = 0.0577;
|
||||||
cylinder { -y*L, y*L, R }
|
cylinder { -y*L, y*L, R }
|
||||||
sphere { 0, R translate -y*L }
|
sphere { 0, R translate y*L }
|
||||||
sphere { 0, R translate y*L }
|
sphere { 0, R scale <1, 0.20, 1>translate -y*L }
|
||||||
|
|
||||||
// les ailettes intérieures
|
// les ailettes intérieures
|
||||||
#for (foo, 0, 5)
|
#for (foo, 0, 5)
|
||||||
@ -59,12 +59,13 @@ union {
|
|||||||
/* nouveau 14 janvier 2026 */
|
/* nouveau 14 janvier 2026 */
|
||||||
#macro HS_element_queue ()
|
#macro HS_element_queue ()
|
||||||
union {
|
union {
|
||||||
#local R_a = HS_radius * 0.2222;
|
#local R_a = HS_radius * 0.228;
|
||||||
#local Small = 0.001;
|
#local Small = 0.001;
|
||||||
cone { < 0.44, 0, 0>, Small, < 0.88, 0, 0>, R_a }
|
cone { < 0.44, 0, 0>, Small, < 0.88, 0, 0>, R_a }
|
||||||
sphere { 0, R_a scale <0.7, 1, 1> translate <0.88, 0, 0> }
|
sphere { 0, R_a scale <0.7, 1, 1> translate <0.88, 0, 0> }
|
||||||
#local R = rand(Rng1);
|
#local R = rand(Rng1);
|
||||||
#if ( R < 0.35 ) texture { Rust rotate y*(rand(Rng1)*133)}
|
#if ( R < 0.35 ) texture { Rust scale 3.33
|
||||||
|
rotate y*(rand(Rng1)*273) }
|
||||||
#elseif ( R < 0.50 ) texture { T_Gold_5A }
|
#elseif ( R < 0.50 ) texture { T_Gold_5A }
|
||||||
#elseif ( R < 0.80 ) texture { Aluminum }
|
#elseif ( R < 0.80 ) texture { Aluminum }
|
||||||
#else texture { T_Gold_3C }
|
#else texture { T_Gold_3C }
|
||||||
@ -89,7 +90,7 @@ union {
|
|||||||
object { HS_element_pointe ()
|
object { HS_element_pointe ()
|
||||||
translate <0, Ty*1.16, Tz*1.16> }
|
translate <0, Ty*1.16, Tz*1.16> }
|
||||||
object { HS_element_queue ()
|
object { HS_element_queue ()
|
||||||
translate <0, Ty, Tz> }
|
translate <0, Ty*0.80, Tz> }
|
||||||
}
|
}
|
||||||
#end // end for
|
#end // end for
|
||||||
object { HS_element_central () }
|
object { HS_element_central () }
|
||||||
|
|||||||
@ -51,7 +51,7 @@ union {
|
|||||||
}
|
}
|
||||||
// =======================================================
|
// =======================================================
|
||||||
|
|
||||||
#local RO = 5.29;
|
#local RO = 5.39;
|
||||||
#local CK = NormClock * 13.37;
|
#local CK = NormClock * 13.37;
|
||||||
|
|
||||||
#declare PosX = RO * sin(CK);
|
#declare PosX = RO * sin(CK);
|
||||||
@ -71,7 +71,7 @@ object { HexaCone ()
|
|||||||
#declare PosY = 0;
|
#declare PosY = 0;
|
||||||
#declare PosZ = RO * cos(CK+3.23);
|
#declare PosZ = RO * cos(CK+3.23);
|
||||||
object { Trident_A ()
|
object { Trident_A ()
|
||||||
rotate x*clock
|
rotate <clock*1.3, 0, clock*0.7>
|
||||||
rotate y*CK*99.22 translate <PosX, PosY, PosZ>
|
rotate y*CK*99.22 translate <PosX, PosY, PosZ>
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ object { HexaStar
|
|||||||
}
|
}
|
||||||
|
|
||||||
object { Planete rotate (-clock*0.31)*y }
|
object { Planete rotate (-clock*0.31)*y }
|
||||||
light_source { <23, 8, 15>, rgb <0.77, 0.79, 0.80> }
|
light_source { <23, 10, 15>, rgb <0.77, 0.79, 0.80> }
|
||||||
|
|
||||||
// -------------------------------------------------------------
|
// -------------------------------------------------------------
|
||||||
camera {
|
camera {
|
||||||
|
|||||||
@ -33,10 +33,10 @@ object { Le_Decor }
|
|||||||
|
|
||||||
// object { Repere scale 3 translate <SzSol, 2, SzSol> }
|
// object { Repere scale 3 translate <SzSol, 2, SzSol> }
|
||||||
|
|
||||||
#local DistCam = 440 + (12 * NormClock);
|
#local DistCam = 460 + (16 * NormClock);
|
||||||
#local CK = -1.101 - (0.042 * NormClock);
|
#local CK = -1.71 - (0.039 * NormClock);
|
||||||
#declare CamX = DistCam * sin(CK);
|
#declare CamX = DistCam * sin(CK);
|
||||||
#declare CamY = 28;
|
#declare CamY = 28 + NormClock;
|
||||||
#declare CamZ = DistCam * cos(CK);
|
#declare CamZ = DistCam * cos(CK);
|
||||||
|
|
||||||
camera {
|
camera {
|
||||||
@ -46,5 +46,5 @@ camera {
|
|||||||
// focal_point <2, 1, 12>
|
// focal_point <2, 1, 12>
|
||||||
// aperture 0.046
|
// aperture 0.046
|
||||||
// blur_samples 30
|
// blur_samples 30
|
||||||
angle 3.6
|
angle 3.5
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,7 +17,7 @@ object { Le_Decor }
|
|||||||
#declare CK = 144 + (clock * 0.27);
|
#declare CK = 144 + (clock * 0.27);
|
||||||
|
|
||||||
#declare Dcam = 3.75;
|
#declare Dcam = 3.75;
|
||||||
#declare CamX = Dcam * cos(radians(CK));
|
#declare CamX = Dcam * cos(radians(CK+0.9));
|
||||||
#declare CamZ = Dcam * 1.20 * sin(radians(CK));
|
#declare CamZ = Dcam * 1.20 * sin(radians(CK));
|
||||||
|
|
||||||
#declare LatZ = 2.45 + (0.9 * Cos_010(NormClock));
|
#declare LatZ = 2.45 + (0.9 * Cos_010(NormClock));
|
||||||
|
|||||||
@ -20,7 +20,7 @@ object { Le_Decor }
|
|||||||
#declare Pos = sqrt(NormClock);
|
#declare Pos = sqrt(NormClock);
|
||||||
#declare PosCam = Interpolate(Debut, Fin, Pos);
|
#declare PosCam = Interpolate(Debut, Fin, Pos);
|
||||||
|
|
||||||
#declare LatX = 0.414 * sin(NormClock*6.1);
|
#declare LatX = 0.614 * sin(NormClock*9.7);
|
||||||
#declare LatZ = -(150 + (7*NormClock));
|
#declare LatZ = -(150 + (7*NormClock));
|
||||||
#declare LatCam = PosCam + <LatX, -95, LatZ>;
|
#declare LatCam = PosCam + <LatX, -95, LatZ>;
|
||||||
|
|
||||||
|
|||||||
19
topview.pov
19
topview.pov
@ -10,24 +10,17 @@
|
|||||||
#declare NO_DYNAMIC = 0;
|
#declare NO_DYNAMIC = 0;
|
||||||
#include "all.inc"
|
#include "all.inc"
|
||||||
|
|
||||||
|
/*
|
||||||
/* XXX
|
* why this two moving hexathings are not in "dynamic.inc" ?
|
||||||
#declare TrX = 1.84 * sqrt(NormClock);
|
*/
|
||||||
#declare TrY = 0.90 + (3.5 * Cos_01(NormClock));
|
|
||||||
#declare TrZ = 9.999 * sqrt(NormClock);
|
|
||||||
#declare TrH = <TrX, TrY, TrZ>;
|
|
||||||
#declare RrY = 97 * sqrt(NormClock);
|
|
||||||
object { HexaCone () rotate y*RrY translate TrH }
|
|
||||||
*/
|
|
||||||
|
|
||||||
object { HexaCone () rotate z*9.1 translate <7, 3+NormClock, -8> }
|
object { HexaCone () rotate z*9.1 translate <7, 3+NormClock, -8> }
|
||||||
object { HexaBenz () translate <-9+NormClock, 2, -6> }
|
object { HexaBenz () translate <-9+NormClock, 2, -6> }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* nouveau 11 fevrier 2025
|
* nouveau 11 fevrier 2025
|
||||||
*/
|
*/
|
||||||
#declare A = <-24, -0.9, (SzSol/2)+9>;
|
#declare A = <-29, -0.5, (SzSol/2)+9>;
|
||||||
#declare B = < 33, -0.7, (SzSol/2)+7>;
|
#declare B = < 36, -0.7, (SzSol/2)+7>;
|
||||||
#declare P = Interpolate(A, B, NormClock);
|
#declare P = Interpolate(A, B, NormClock);
|
||||||
object { HexaWood translate P }
|
object { HexaWood translate P }
|
||||||
|
|
||||||
@ -40,7 +33,7 @@ object { Le_Decor }
|
|||||||
|
|
||||||
camera {
|
camera {
|
||||||
location <-3.60, CamY, 10.09>
|
location <-3.60, CamY, 10.09>
|
||||||
look_at <0, LatY, 0>
|
look_at <0.6, LatY, 0>
|
||||||
right <image_width/image_height, 0, 0>
|
right <image_width/image_height, 0, 0>
|
||||||
// focal_point <2, 1, 12>
|
// focal_point <2, 1, 12>
|
||||||
// aperture 0.046
|
// aperture 0.046
|
||||||
|
|||||||
@ -13,12 +13,13 @@
|
|||||||
difference {
|
difference {
|
||||||
#local RA = V * R_hole * 1.004;
|
#local RA = V * R_hole * 1.004;
|
||||||
#local RB = V * R_hole * 0.996;
|
#local RB = V * R_hole * 0.996;
|
||||||
cylinder { 0, y*0.42, RA }
|
#local HB_H = 0.53;
|
||||||
|
cylinder { 0, y*HB_H, RA }
|
||||||
cylinder { -y, y*2, RB }
|
cylinder { -y, y*2, RB }
|
||||||
#for (foo, 0, 179, 6)
|
#for (foo, 0, 179, 4)
|
||||||
cylinder {
|
cylinder {
|
||||||
<-20, 0, 0>, < 20, 0, 0>, 0.07
|
<-20, 0, 0>, < 20, 0, 0>, 0.075
|
||||||
scale <1, 2, 1> translate y*0.21
|
scale <1, 2.2, 1> translate y*(HB_H/2)
|
||||||
rotate y*foo
|
rotate y*foo
|
||||||
}
|
}
|
||||||
#end // for
|
#end // for
|
||||||
@ -29,17 +30,30 @@ difference {
|
|||||||
}
|
}
|
||||||
#end
|
#end
|
||||||
/* --------------------------------------------------------------- */
|
/* --------------------------------------------------------------- */
|
||||||
|
|
||||||
#macro HoleBorder_B (V)
|
#macro HoleBorder_B (V)
|
||||||
union {
|
union {
|
||||||
#local Ra = R_hole * 1.02;
|
#local Ra = V * R_hole * 1.02;
|
||||||
#local Rb = 0.04;
|
#local Rb = 0.028;
|
||||||
torus { Ra, Rb texture { tPlasticBlue }
|
#local KY = 0.21;
|
||||||
translate y*0.50 }
|
torus { Ra, Rb texture { T_Beton_2 } translate y*KY }
|
||||||
torus { Ra, Rb texture { T_WIP_color }
|
torus { Ra, Rb texture { T_WIP_color } translate y*(KY*2) }
|
||||||
translate y*0.80 }
|
torus { Ra, Rb texture { T_WIP_dents } translate y*(KY*3) }
|
||||||
torus { Ra, Rb texture { T_WIP_dents }
|
|
||||||
translate y*1.10 }
|
#for (foo, 0, 359.99, 15)
|
||||||
|
#local Dx = Ra * sin(radians(foo));
|
||||||
|
#local Dz = Ra * cos(radians(foo));
|
||||||
|
cylinder { 0, y*(3.2*KY), Rb*0.72
|
||||||
|
#local R = rand(Rng1);
|
||||||
|
#if (R < 0.67) texture { tPlasticPrune }
|
||||||
|
#else texture { tPlasticGreen }
|
||||||
|
#end // if R
|
||||||
|
translate <Dx, 0, Dz>
|
||||||
|
}
|
||||||
|
|
||||||
|
#end // for
|
||||||
}
|
}
|
||||||
|
|
||||||
#end
|
#end
|
||||||
/* =============================================================== */
|
/* =============================================================== */
|
||||||
/*
|
/*
|
||||||
@ -48,8 +62,8 @@ union {
|
|||||||
#declare Patrouille = object
|
#declare Patrouille = object
|
||||||
{
|
{
|
||||||
union {
|
union {
|
||||||
#local EX = 2.4;
|
#local EX = 1.9;
|
||||||
#local EZ = 2.1 + (0.5*sin(NormClock*2));
|
#local EZ = 2.0 + (0.5*sin(NormClock*2));
|
||||||
object { Trident_A () rotate x*87 }
|
object { Trident_A () rotate x*87 }
|
||||||
object { HexaBenz () translate <-EX, 0, -EZ> }
|
object { HexaBenz () translate <-EX, 0, -EZ> }
|
||||||
object { HexaCone () translate < EX, -0.4, -EZ> }
|
object { HexaCone () translate < EX, -0.4, -EZ> }
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user