143 lines
3.3 KiB
PHP
143 lines
3.3 KiB
PHP
/*
|
|
* H E X A C O N E - X P E R I M E N T
|
|
*
|
|
* A cosy place for experimental things (2025/10/27)
|
|
*
|
|
*/
|
|
|
|
// =======================================================
|
|
/*
|
|
* nouveau du 25 octobre 2025
|
|
*/
|
|
#macro Une_Arche (Val)
|
|
object {
|
|
#debug concat(" Arche, val = ", str(Val, 6, 4), "\n")
|
|
merge {
|
|
#local Ha = 2;
|
|
// mettre une base de la colonne
|
|
cylinder { <-1, 0, 0>, <-1, 0.20, 0> Val*1.29 }
|
|
cylinder { < 1, 0, 0>, < 1, 0.20, 0> Val*1.27 }
|
|
|
|
cylinder { <-1, 0, 0>, <-1, Ha, 0>, Val }
|
|
cylinder { < 1, 0, 0>, < 1, Ha, 0>, Val }
|
|
#if (rand(Rng1) < 0.50)
|
|
torus { 0.008, Val*1.08 translate <-1, Ha, 0> }
|
|
torus { 0.008, Val*1.08 translate < 1, Ha, 0> }
|
|
#else
|
|
cylinder { y*(Ha-0.07), y*(Ha+0.01), Val*1.12 translate -x }
|
|
cylinder { y*(Ha-0.08), y*(Ha+0.01), Val*1.13 translate x }
|
|
#end
|
|
intersection {
|
|
torus { 1, Val }
|
|
box { <-20, -5, 0>, <20, 5, -20> }
|
|
rotate <90, 0, 0> translate Ha*y
|
|
}
|
|
#local R = rand(Rng1);
|
|
#if (R < 0.25)
|
|
texture { T_Stone40 scale 5+rand(Rng1) }
|
|
#elseif (R < 0.50)
|
|
texture { T_Stone44 scale 4+rand(Rng1) }
|
|
#elseif (R < 0.75)
|
|
texture { T_Stone32 scale 5+rand(Rng1) }
|
|
#else
|
|
texture { T_Stone36 scale 6+rand(Rng1) }
|
|
#end
|
|
}
|
|
}
|
|
#end
|
|
|
|
#declare Les_Arches = object
|
|
{
|
|
union {
|
|
#local E = 1.333 + (rand(Rng1) * 0.50);
|
|
object { Une_Arche (0.20) }
|
|
object { Une_Arche (0.16) translate -z*E }
|
|
object { Une_Arche (0.16) translate z*E }
|
|
object { Une_Arche (0.12) translate -z*E*2 }
|
|
object { Une_Arche (0.12) translate z*E*2 }
|
|
object { Une_Arche (0.08) translate -z*E*3 }
|
|
object { Une_Arche (0.08) translate z*E*3 }
|
|
}
|
|
}
|
|
|
|
// ==============================================================
|
|
/*
|
|
* new Mon Oct 27 04:54:41 PM UTC 2025
|
|
*/
|
|
#macro Un_Pylone (Type, Hauteur)
|
|
#debug " Un pylone ?\n"
|
|
|
|
#end // macro
|
|
|
|
|
|
// ==============================================================
|
|
/*
|
|
* nouveau du 12 octobre 2025
|
|
*/
|
|
|
|
#macro Cahute_0 ()
|
|
difference {
|
|
#local KX = 0.60;
|
|
#local KH = 1.80 + rand(Rng1) ;
|
|
#debug concat(" Cahute_0, KH = ", str(KH, 6, 4), "\n")
|
|
#local KZ = KX + (0.24*rand(Rng1));
|
|
box { <-KX, 0, -KZ>, <KX, KH, KZ> }
|
|
|
|
#local Mult = 0.97;
|
|
#local KX = KX * Mult;
|
|
#local KH = KH * Mult;
|
|
#local KZ = KZ * Mult;
|
|
box { <-KX, 0, -KZ>, <KX, KH, KZ> }
|
|
|
|
cylinder { <-10, KH*0.70, 0>, <10, KH*0.72, 0>, KX * 0.666 }
|
|
|
|
#local R = rand(Rng1);
|
|
// #debug concat("Random = ", str(R, 6, 4), "\n")
|
|
#if ( R < 0.13 )
|
|
texture { T_Planete_A }
|
|
#elseif ( R < 0.56 )
|
|
texture { T_Beton_1 }
|
|
#else
|
|
texture { T_Beton_2 }
|
|
#end // if
|
|
|
|
rotate y * (277 * rand(Rng1))
|
|
}
|
|
|
|
#end // macro
|
|
|
|
/* le support des cahutes XXX */
|
|
|
|
#macro Les_Cahutes ()
|
|
union {
|
|
#local K = 2.75;
|
|
union {
|
|
object { Cahute_0 () translate -x * K }
|
|
object { Cahute_0 () translate x * K }
|
|
object { Cahute_0 () translate -z * K }
|
|
object { Cahute_0 () translate z * K }
|
|
translate y
|
|
}
|
|
#local K2 = K + 1.35;
|
|
box { <-K2, 0, -K2>, <K2, 1, K2> pigment { Gray30 } }
|
|
}
|
|
scale 0.5
|
|
// rotate -y * (clock*0.33)
|
|
#end
|
|
// =======================================================
|
|
/*
|
|
* new: 28 octobre 2025
|
|
*/
|
|
#declare Ground_Texture = texture
|
|
{
|
|
pigment { rgb <0.51, 0.58, 0.23> }
|
|
normal { dents 0.28 scale 1.5}
|
|
finish {
|
|
ambient 0 specular 0.5 metallic roughness 0.18
|
|
reflection { 0.5 metallic }
|
|
}
|
|
}
|
|
|
|
|
|
// ==============================================================
|