premier commit du printemps
This commit is contained in:
parent
3c4012945f
commit
363274e273
@ -1,6 +1,8 @@
|
||||
/*
|
||||
* H E X A C O N E
|
||||
* nouveau projet Thu Dec 5 11:37:05 AM UTC 2024
|
||||
*
|
||||
* cartographie de l'hexamonde
|
||||
*/
|
||||
|
||||
#version 3.7;
|
||||
@ -25,12 +27,12 @@
|
||||
|
||||
// ---------------------------------------------------------
|
||||
|
||||
object { Repere scale 15 translate y*5 }
|
||||
object { Repere scale 10 translate y*7 }
|
||||
object { Le_Decor }
|
||||
|
||||
camera {
|
||||
location <45, 126, 18>
|
||||
look_at <0, 1.18, 0.17 + NormClock>
|
||||
look_at <0, 1.18, 0.17 + (1.9*NormClock)>
|
||||
angle 49
|
||||
}
|
||||
|
||||
|
22
contexte.inc
22
contexte.inc
@ -25,8 +25,9 @@
|
||||
#macro RedBase_0 ( T )
|
||||
difference {
|
||||
#local R = 2.46;
|
||||
cylinder { 0, y*0.40, R }
|
||||
cone { y*0.37, R*0.78, y*0.42, R*0.83 }
|
||||
cylinder { 0, y*0.40, R }
|
||||
cylinder { 0, y*0.36, R*0.98 }
|
||||
cone { y*0.37, R*0.80, y*0.42, R*0.83 }
|
||||
#for (Foo, 20, 339, 10)
|
||||
#local Dx = R * sin(radians(Foo));
|
||||
#local Dz = R * cos(radians(Foo));
|
||||
@ -127,15 +128,15 @@ merge {
|
||||
{
|
||||
union {
|
||||
object { HexaBalls
|
||||
texture { Lightning1 scale 0.33 }
|
||||
rotate <clock/3, clock/6, clock/9>
|
||||
translate <2, -1.1+1.01*Cos_010(NormClock), 4>
|
||||
texture { Lightning1 scale 0.44 }
|
||||
rotate <clock/3, clock/4, clock/9>
|
||||
translate <2, 1.11*Cos_010(NormClock), 4>
|
||||
}
|
||||
|
||||
object { HexaBalls
|
||||
texture { Lightning2 scale 0.56 }
|
||||
rotate <-clock, clock*0.33333, clock>
|
||||
translate <5, -1+0.92*Cos_010(NormClock), -3>
|
||||
translate <4, 1.11*Cos_010(NormClock), -3>
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -166,9 +167,12 @@ blob {
|
||||
|
||||
#declare UnderHoles = array[6]
|
||||
|
||||
/*
|
||||
* on rempli le tableau avec la place des trous
|
||||
*/
|
||||
#fopen Holes "WS/holes.log" write
|
||||
#for (Idx, 0, 5)
|
||||
#local Angle = Idx* 1.090;
|
||||
#local Angle = (Idx + 0.17) * 1.090;
|
||||
#local Px = sin(Angle) * (SzSol * 1.21);
|
||||
#local Pz = cos(Angle) * (SzSol * 1.23);
|
||||
#declare UnderHoles[Idx] = <Px, 0, Pz>;
|
||||
@ -187,12 +191,14 @@ difference {
|
||||
cylinder { -y*5, y*5, 3.4 translate UnderHoles[Foo] }
|
||||
#end
|
||||
}
|
||||
texture { T_Planete_A scale 0.3333 }
|
||||
/*
|
||||
texture {
|
||||
pigment { color Gray20 }
|
||||
normal { bumps 0.38 scale 2.6 }
|
||||
finish { phong 0.125 }
|
||||
}
|
||||
// translate -y*1.55
|
||||
*/
|
||||
}
|
||||
|
||||
/* ======================================================= */
|
||||
|
@ -35,7 +35,7 @@ object { Le_Decor }
|
||||
|
||||
// =======================================================
|
||||
|
||||
#local CamX = -33.4 + (2.83*Cos_01(NormClock));
|
||||
#local CamX = -33.4 + (2.89*Cos_01(NormClock));
|
||||
#local CamY = 2.5 + (0.24*sqrt(NormClock));
|
||||
#local CamZ = 5.85 + (2.42*NormClock);
|
||||
|
||||
|
23
dynamic.inc
23
dynamic.inc
@ -7,6 +7,29 @@
|
||||
object { Les_Bibelots rotate y*clock translate UnderHoles[2] }
|
||||
object { Les_Machins rotate -y*clock translate UnderHoles[3] }
|
||||
|
||||
/*
|
||||
* un hexabenz sur une base exterieure
|
||||
*/
|
||||
#declare BiBenz = object
|
||||
{
|
||||
#local K = 1.39;
|
||||
union {
|
||||
object { HexaBenz () rotate y*90 translate <-K, 1.75, 0> }
|
||||
object { HexaBenz () translate < K, 1.71, 0> }
|
||||
}
|
||||
}
|
||||
object { BiBenz rotate -y*(clock*0.19) translate Pos_RedB_0 }
|
||||
|
||||
#declare BiCone = object
|
||||
{
|
||||
#local K = 1.27;
|
||||
union {
|
||||
object { HexaCone () rotate y*90 translate <-K, 1.7, 1> }
|
||||
object { HexaCone () translate < K, 1.9, 1> }
|
||||
}
|
||||
}
|
||||
object { BiCone rotate -y*(Cos_010(NormClock)*777) translate Pos_RedB_1 }
|
||||
|
||||
/*
|
||||
* on fait passer un hexatruc dans le ciel
|
||||
*/
|
||||
|
@ -31,9 +31,9 @@
|
||||
// #debug concat("X ", str(posX,7,3), " Z ", str(posZ,7,3), "\n")
|
||||
// #debug concat("position Z ", str(posZ,7,3),"\n")
|
||||
|
||||
#if ( (abs(posX)>1) & (abs(posZ)>0.5) )
|
||||
#if ( (abs(posX)>1.2) & (abs(posZ)>1.2) )
|
||||
|
||||
#if (rand(Rng1) < 0.555)
|
||||
#if (rand(Rng1) < 0.505)
|
||||
object { HexaCone () rotate <Rx, Ry, Rz>
|
||||
translate <posX, posY, posZ> }
|
||||
#else
|
||||
@ -46,7 +46,7 @@
|
||||
|
||||
#end // if pos...
|
||||
#end // loop IDX
|
||||
#end //loop idZ
|
||||
#end // loop idZ
|
||||
|
||||
// =======================================================
|
||||
|
||||
|
112
essai.pov
112
essai.pov
@ -16,34 +16,122 @@
|
||||
#include "hexawood.inc"
|
||||
|
||||
// =======================================================
|
||||
|
||||
// #include "dynamic.inc"
|
||||
/* ======================================================= */
|
||||
|
||||
// ------------------------------------------------------ ##
|
||||
#declare Horloge = object
|
||||
{
|
||||
#local Texte = str(NormClock, 6, 4);
|
||||
#debug concat("Texte horloge ", Texte, "\n\n")
|
||||
|
||||
text {
|
||||
ttf "datas/Rebel-Typographer.ttf" Texte 0.1, 0
|
||||
texture { T_WIP_alert }
|
||||
}
|
||||
scale 3.00
|
||||
rotate -90*x
|
||||
translate <-4.5,-0.21, 0>
|
||||
}
|
||||
|
||||
// =======================================================
|
||||
|
||||
#include "trident.inc"
|
||||
|
||||
#debug "\n ACTION !!!\n"
|
||||
#debug " ACTION !!!\n"
|
||||
|
||||
#if (1)
|
||||
// ------------------------------------------------------ ##
|
||||
|
||||
|
||||
// ------------------------------------------------------ ##
|
||||
|
||||
#declare Tridents = object
|
||||
{
|
||||
#local RX = -11 + (80*sin(NormClock*9.81) + 3*sin(NormClock*23));
|
||||
#local RZ = 96 - (54*Cos_010(NormClock));
|
||||
object { Trident_A () rotate <RX, 0, RZ> translate < -1.4, 3, 0> }
|
||||
object { Trident_A () rotate <0, clock, 0> translate < 1.4, 1, 0> }
|
||||
#end
|
||||
union {
|
||||
object { Trident_A () rotate <RX, 0, RZ>
|
||||
translate < -1.4, 3, 0> }
|
||||
object { Trident_A () rotate <0, clock, 0>
|
||||
translate < 1.4, 2, 0> }
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------ ##
|
||||
|
||||
#declare Gyros = object
|
||||
{
|
||||
union {
|
||||
#for (I, 0, 359, 60)
|
||||
#declare E = 9;
|
||||
#declare Dx = E * sin(radians(I));
|
||||
#declare Dz = E * cos(radians(I));
|
||||
object { GyroPhare () translate <Dx, 0, Dz> }
|
||||
// #debug " Gyro !!!\n"
|
||||
#end
|
||||
}
|
||||
}
|
||||
// ------------------------------------------------------ ##
|
||||
|
||||
object { Gyros }
|
||||
|
||||
/*
|
||||
light_source {
|
||||
<-8, 7, 19>
|
||||
colour Gray60
|
||||
parallel
|
||||
point_at 0
|
||||
}
|
||||
*/
|
||||
|
||||
#declare Selector = mod(int(clock/32), 6);
|
||||
#debug concat("Selector = ", str(Selector, 6, 0), "\n")
|
||||
|
||||
#switch (Selector)
|
||||
#case (0)
|
||||
object { Cabane_Compteur scale 2 rotate y*clock }
|
||||
#debug " Cabane+Compteur !!!\n"
|
||||
#break
|
||||
#case (1)
|
||||
object { QuadriPole }
|
||||
#debug " Quadripole !!!\n"
|
||||
#break
|
||||
#case (2)
|
||||
object { Tridents }
|
||||
#debug " Deux Tridents !!!\n"
|
||||
#break
|
||||
#case (3)
|
||||
object { Les_Bibelots translate y }
|
||||
#debug " Bibelots !!!\n"
|
||||
#break
|
||||
#case (4)
|
||||
object { Les_Machins }
|
||||
#debug " Machins !!!\n"
|
||||
#break
|
||||
#case (5)
|
||||
object { Horloge }
|
||||
#debug " Horloge !!!\n"
|
||||
#break
|
||||
#end // switch selector
|
||||
|
||||
|
||||
plane {
|
||||
y, 0
|
||||
texture { T_Planete_A scale 0.3333 }
|
||||
}
|
||||
|
||||
object { Repere translate y*0.6 }
|
||||
object { RedBase_0 (T_Grnt27) }
|
||||
// object { RedBase_0 (T_Planete_B) }
|
||||
|
||||
// =======================================================
|
||||
|
||||
#local CamX = -2.7 + (2.8*Cos_010(NormClock));
|
||||
#local CamY = -0.91 + (2.3*exp(NormClock));
|
||||
#local CamZ = 5.777 - (0.8*Cos_010(NormClock));
|
||||
#local CamX = -2.7 + (1.8*Cos_010(NormClock));
|
||||
#local CamY = 0.91 + (1.3*exp(NormClock));
|
||||
#local CamZ = -5.777 + (0.8*Cos_01(NormClock));
|
||||
|
||||
#local K = 4.7;
|
||||
#local K = 8.6;
|
||||
#local CamX = CamX * K;
|
||||
#local CamY = CamY * K;
|
||||
#local CamY = CamY * K * 0.5;
|
||||
#local CamZ = CamZ * K;
|
||||
|
||||
camera {
|
||||
|
@ -29,7 +29,7 @@ texture { WIP_color }
|
||||
*/
|
||||
#macro Bubble ()
|
||||
sphere {
|
||||
0, 0.065
|
||||
0, 0.070
|
||||
#local R = rand(Rng1);
|
||||
#if ( R < 0.333 )
|
||||
texture { Ruby_Glass }
|
||||
@ -39,13 +39,14 @@ sphere {
|
||||
texture { Gold_Nugget }
|
||||
#end
|
||||
#undef R
|
||||
scale <1.414, 1.000, 1.414>
|
||||
}
|
||||
#end
|
||||
|
||||
#macro Un_Machin ()
|
||||
union {
|
||||
#for (Y, 1, 8, 1)
|
||||
object { Bubble() translate y*Y*0.1 }
|
||||
object { Bubble() translate y*Y*0.11 }
|
||||
#end
|
||||
}
|
||||
#end
|
||||
@ -53,7 +54,7 @@ union {
|
||||
#declare Les_Machins = object
|
||||
{
|
||||
union {
|
||||
#local Rk = 3.95 + NormClock;
|
||||
#local Rk = 3.90 + NormClock;
|
||||
#for (foo, 0, 359, 45)
|
||||
#local Xpos = Rk * sin(radians(foo));
|
||||
#local Zpos = Rk * cos(radians(foo));
|
||||
|
@ -32,7 +32,7 @@ global_settings {
|
||||
#declare R_basecone = 0.117;
|
||||
#declare H_cone = 0.97;
|
||||
|
||||
#declare R_gyro = 0.09;
|
||||
#declare R_gyro = 0.08;
|
||||
#declare H_gyro = 2.10;
|
||||
#declare H_gylampe = 0.25;
|
||||
|
||||
@ -60,7 +60,7 @@ finish { ambient 1 specular 0.90 }
|
||||
{
|
||||
pigment { color rgb <0.20, 0.30, 0.10> }
|
||||
normal { dents 0.38 scale 0.5}
|
||||
finish { phong 0.80 reflection 0.05 }
|
||||
finish { phong 0.70 reflection 0.05 }
|
||||
}
|
||||
#declare T_Planete_B = texture
|
||||
{
|
||||
|
@ -38,6 +38,25 @@ texture { T_Beton_1 }
|
||||
object { Base_cabane_forme }
|
||||
texture { T_Beton_2 }
|
||||
}
|
||||
// ------------------------------------------------------ ##
|
||||
|
||||
#declare Compteur = object
|
||||
{
|
||||
#local Texte = str(clock, 3, 0);
|
||||
#debug concat("Texte du compteur ", Texte, "\n\n")
|
||||
text {
|
||||
ttf "datas/ComicMono.ttf" Texte 0.1, 0
|
||||
texture { T_WIP_alert }
|
||||
}
|
||||
}
|
||||
#declare Cabane_Compteur = object
|
||||
{
|
||||
union {
|
||||
object { Compteur scale 0.55
|
||||
translate <-0.46, 0.22, 0.32> }
|
||||
object { Cabane_Base_2 }
|
||||
}
|
||||
}
|
||||
|
||||
/* ======================================================= */
|
||||
#declare GroundBase_Sol = object
|
||||
@ -59,7 +78,7 @@ intersection {
|
||||
}
|
||||
cylinder { -y*5, y*5, SzSol*0.45 }
|
||||
}
|
||||
finish { phong 0.105 }
|
||||
finish { phong 0.096 }
|
||||
translate y*H_sol
|
||||
}
|
||||
|
||||
@ -92,7 +111,7 @@ texture { T_Grnt7 rotate 49 scale 0.333 }
|
||||
#declare GroudBase_coin = object
|
||||
{
|
||||
merge {
|
||||
cylinder { 0, y*0.5, 0.09 }
|
||||
cylinder { 0, y*0.5, 0.10 }
|
||||
sphere { 0, 0.10 scale <1, 0.23, 1> translate y*0.5 }
|
||||
}
|
||||
}
|
||||
@ -125,7 +144,7 @@ union {
|
||||
*/
|
||||
#local Dz = <0, 0, -7>;
|
||||
object { GroundBase_a translate Dz }
|
||||
object { Cabane_Base_2 rotate y*180
|
||||
object { Cabane_Compteur rotate y*180
|
||||
translate Dz + y*H_base }
|
||||
#undef Dz
|
||||
}
|
||||
|
36
hexabenz.inc
36
hexabenz.inc
@ -24,10 +24,13 @@ union {
|
||||
#local Ty = E * cos(radians(foo));
|
||||
object {
|
||||
Benz_Cone_Base ()
|
||||
#if ( rand(Rng1) < 0.5 )
|
||||
#local R = rand(Rng1);
|
||||
#if ( R < 0.3333 )
|
||||
texture { T_Silver_2C scale 11.50 }
|
||||
#else
|
||||
#elseif ( R < 0.6666 )
|
||||
texture { T_Brass_2C scale 13.50 }
|
||||
#else
|
||||
texture { T_Brass_4A scale 13.50 }
|
||||
#end
|
||||
rotate -z*foo
|
||||
translate <Tx, Ty, 0>
|
||||
@ -47,7 +50,7 @@ union {
|
||||
|
||||
// ------------------------------------------------------
|
||||
|
||||
#declare R_Tube = 0.18;
|
||||
#declare R_Tube = 0.17;
|
||||
#local L_Tube = 0.54;
|
||||
|
||||
#macro Benz_Tubules ()
|
||||
@ -63,7 +66,7 @@ merge {
|
||||
sphere { -Dza, R*1.8 translate <Tx, Ty, 0> }
|
||||
sphere { Dzb, R*1.8 translate <Tx, Ty, 0> }
|
||||
#end
|
||||
#if ( rand(Rng1) < 0.360)
|
||||
#if ( rand(Rng1) < 0.520)
|
||||
texture { Orange_Glass }
|
||||
#else
|
||||
texture { Yellow_Glass }
|
||||
@ -84,7 +87,7 @@ scale <1, 1, 4.4>
|
||||
#if ( rand(Rng1) < 0.360)
|
||||
texture { Shadow_Clouds scale 0.56 }
|
||||
#else
|
||||
texture { WIP_color }
|
||||
texture { Flashy }
|
||||
#end
|
||||
|
||||
#end // end macro
|
||||
@ -98,12 +101,28 @@ union {
|
||||
rgb <rand(Rng2), rand(Rng2), rand(Rng2)>
|
||||
fade_distance 0.96
|
||||
fade_power 1.95
|
||||
|
||||
}
|
||||
}
|
||||
rotate -z*clock*8
|
||||
}
|
||||
|
||||
// -------------------------------------------
|
||||
|
||||
#local Forme_Cockpit = object
|
||||
{
|
||||
difference {
|
||||
sphere { 0, R_Tube*0.72 }
|
||||
sphere { 0, R_Tube*0.72 scale 0.99 }
|
||||
#for (Foo, 0, 359, 36)
|
||||
cylinder { x, 0, R_Tube*0.15
|
||||
translate y*(R_Tube*0.32)
|
||||
rotate y*Foo }
|
||||
#end
|
||||
}
|
||||
scale <1, 0.87, 1>
|
||||
translate z*L_Tube*1.18
|
||||
}
|
||||
|
||||
#declare Benz_Cylindre = object
|
||||
{
|
||||
difference {
|
||||
@ -117,9 +136,8 @@ difference {
|
||||
|
||||
/* cette sphere devrait devenir
|
||||
un vrai cockpit ? */
|
||||
sphere { z*L_Tube*1.18, R_Tube*0.72
|
||||
scale <1, 0.73, 1>
|
||||
translate y*R_Tube*0.87}
|
||||
object { Forme_Cockpit
|
||||
translate y*R_Tube*0.97}
|
||||
}
|
||||
cylinder { z*4, -z*4, R_Tube*0.95 }
|
||||
}
|
||||
|
16
hexabenz.pov
16
hexabenz.pov
@ -14,16 +14,6 @@
|
||||
|
||||
#include "dynamic.inc"
|
||||
|
||||
#declare BiBenz = object
|
||||
{
|
||||
#local K = 1.41;
|
||||
union {
|
||||
object { HexaBenz () rotate y*90 translate <-K, 1.75, 0> }
|
||||
object { HexaBenz () translate < K, 1.71, 0> }
|
||||
}
|
||||
}
|
||||
|
||||
object { BiBenz translate Pos_RedB_0 }
|
||||
|
||||
// =======================================================
|
||||
|
||||
@ -32,14 +22,14 @@ object { Le_Decor }
|
||||
|
||||
// object { Repere scale 2 }
|
||||
|
||||
#declare Loc_cam = <0, 2, 1> + (Pos_RedB_0 * 1.33333);
|
||||
#declare Loc_cam = <0, 2, NormClock> + (Pos_RedB_0 * 1.33333);
|
||||
|
||||
camera {
|
||||
location Loc_cam
|
||||
look_at Pos_RedB_0 + <0, 1, 0>
|
||||
look_at Pos_RedB_0 + <0, 1.20, 0>
|
||||
// focal_point <0.37, 0.0, 0>
|
||||
// aperture 0.046
|
||||
// blur_samples 30
|
||||
angle 40 - 15 * Cos_01(NormClock)
|
||||
angle 40 - 14 * Cos_01(NormClock)
|
||||
}
|
||||
|
||||
|
@ -154,10 +154,13 @@ merge {
|
||||
}
|
||||
sphere { 0, DTb*1.65 translate -DTa*x }
|
||||
sphere { 0, DTb*1.65 translate DTa*x }
|
||||
#if (rand(Rng1) < 0.8)
|
||||
#local R = rand(Rng1);
|
||||
#if (R < 0.4)
|
||||
texture { Orange_Glass }
|
||||
#else
|
||||
#elseif (R < 0.8)
|
||||
texture { Dark_Green_Glass }
|
||||
#else
|
||||
texture { Flashy }
|
||||
#end
|
||||
}
|
||||
#end // macro
|
||||
|
14
hexacone.pov
14
hexacone.pov
@ -14,16 +14,6 @@
|
||||
|
||||
#include "dynamic.inc"
|
||||
|
||||
#declare BiCone = object
|
||||
{
|
||||
#local K = 1.27;
|
||||
union {
|
||||
object { HexaCone () rotate y*90 translate <-K, 1.7, 1> }
|
||||
object { HexaCone () translate < K, 1.9, 1> }
|
||||
}
|
||||
}
|
||||
|
||||
object { BiCone translate Pos_RedB_0 }
|
||||
|
||||
object { Le_Decor }
|
||||
|
||||
@ -38,10 +28,10 @@ object { Le_Decor }
|
||||
|
||||
camera {
|
||||
location Loc_cam
|
||||
look_at Pos_RedB_0 + <0.12, 1.10, 0>
|
||||
look_at Pos_RedB_0 + <0.12, 1.16, 0>
|
||||
// focal_point <0.37, 0.90, 0>
|
||||
// aperture 0.046
|
||||
// blur_samples 30
|
||||
angle 55 - 26 * Cos_01(NormClock)
|
||||
angle 55 - 24 * Cos_01(NormClock)
|
||||
}
|
||||
|
||||
|
@ -20,11 +20,11 @@
|
||||
|
||||
object { Le_Decor }
|
||||
|
||||
object { Repere translate <10, 1, 0> }
|
||||
// object { Repere translate <10, 1, 10> }
|
||||
|
||||
camera {
|
||||
location <40, 2, 15>
|
||||
look_at <-20, 1.7, 20>
|
||||
angle 42
|
||||
look_at <-20, 1.7, 25.6>
|
||||
angle 26 + NormClock
|
||||
}
|
||||
|
||||
|
@ -23,12 +23,12 @@ object { Repere scale 2 translate y*2 }
|
||||
|
||||
// =======================================================
|
||||
|
||||
#declare Debut = <-3, 87, 47> ;
|
||||
#declare Debut = <-3, 87, 54> ;
|
||||
#declare Fin = < 2, 91, 8> ;
|
||||
#declare Pos = Cos_01(NormClock);
|
||||
#declare PosCam = Interpolate(Debut, Fin, Pos);
|
||||
|
||||
#declare LatCam = PosCam + <-1, -20, -(NormClock+9)>;
|
||||
#declare LatCam = PosCam + <-1, -20, -(NormClock+10)>;
|
||||
|
||||
camera {
|
||||
location PosCam
|
||||
|
@ -3,7 +3,7 @@
|
||||
Img_Width=1024
|
||||
Img_Height=720
|
||||
|
||||
TEXTCOL="OliveDrab1"
|
||||
STROKOL="Black"
|
||||
TEXTCOL="OliveDrab2"
|
||||
STROKOL="Gray20"
|
||||
|
||||
NBFRAMES=360
|
||||
|
@ -140,7 +140,7 @@ rm -f frames/Spool/*.png
|
||||
faire_le_titre
|
||||
|
||||
linkfarm hexabenz
|
||||
linkfarm hexacone
|
||||
linkfarm hexawood
|
||||
linkfarm escadrille
|
||||
linkfarm survol
|
||||
linkfarm cutoff
|
||||
@ -148,6 +148,7 @@ linkfarm topview
|
||||
linkfarm passage
|
||||
linkfarm scene
|
||||
linkfarm orbite
|
||||
linkfarm hexacone
|
||||
linkfarm remote
|
||||
linkfarm essai
|
||||
|
||||
|
@ -55,7 +55,8 @@ merge {
|
||||
#macro Trid_A_ailette ()
|
||||
union {
|
||||
#local E = 0.49;
|
||||
object { Trid_A_cone () scale 0.7 translate x*E }
|
||||
object { Trid_A_cone () scale 0.7
|
||||
translate <E, -0.05, 0> }
|
||||
cylinder { 0, x*E, 0.012
|
||||
scale <1, 4, 1> texture { T_Silver_3A } }
|
||||
#undef E
|
||||
|
Loading…
Reference in New Issue
Block a user