commit du dimanche soir de la flemme
This commit is contained in:
parent
095dfbdd39
commit
c03f402b4c
11
README.md
11
README.md
@ -9,14 +9,15 @@ et vous pouvez
|
||||
suivre son évolution par l'intermédiaire de
|
||||
[Mastodon](https://mastodon.tetaneutral.net/@tth)
|
||||
avec le croisimot `#hexacone`.
|
||||
Quelques images sont disponibles sur mon serveur
|
||||
de [cuisine](http://maison.tth.netlib.re/p/hexacone.html).
|
||||
Quelques images sont disponibles sur mon serveur de
|
||||
[cuisine](http://maison.tth.netlib.re/pov/hexacone.html).
|
||||
|
||||
## Prérequis
|
||||
|
||||
Avant toute chose, il faut avoir installé les logiciels
|
||||
suivants : bash, awk, gnuplot, imagemagick, et, bien
|
||||
entendu, [povray](https://povray.org/).
|
||||
Une bonne maitrise des scripts shell sera un plus.
|
||||
|
||||
## Utilisation
|
||||
|
||||
@ -26,8 +27,8 @@ par un classique [`Makefile`](./Makefile) et les séquences animées
|
||||
produites par un [script shell](./mkloop.sh).
|
||||
|
||||
Avant toute chose, vous devrez vérifier la présence de plusieurs
|
||||
répertoires : d'un coté `./frames/<name>` pour stocker les images calculées :
|
||||
|
||||
répertoires : d'un coté `./frames/<name>` pour stocker les images calculées et `./frames/Spool` pour l'assemblage
|
||||
de la vidéo intégrale :
|
||||
|
||||
```
|
||||
frames/
|
||||
@ -41,6 +42,8 @@ répertoires : d'un coté `./frames/<name>` pour stocker les images calculées :
|
||||
```
|
||||
et de l'autre coté `./WS/` pour ranger les fichiers de travail.
|
||||
|
||||
À vous de jouer maintenant.
|
||||
|
||||
## Contact
|
||||
|
||||
* La [mailing-list du tetalab](https://lists.tetalab.org/postorius/lists/tetalab.tetalab.org/) ;
|
||||
|
60
contexte.inc
60
contexte.inc
@ -8,8 +8,34 @@
|
||||
|
||||
#include "groundbase.inc"
|
||||
|
||||
/* ======================================================= */
|
||||
/*
|
||||
* essai du 12 mars 2025
|
||||
*/
|
||||
|
||||
#declare RedB_0_X = 18;
|
||||
#declare RedB_0_Z = 28;
|
||||
|
||||
#declare RedB_1_X = -24;
|
||||
#declare RedB_1_Z = 4;
|
||||
|
||||
#declare Pos_RedB_0 = <RedB_0_X, 0, RedB_0_Z>;
|
||||
#declare Pos_RedB_1 = <RedB_1_X, 0, RedB_1_Z>;
|
||||
|
||||
#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 }
|
||||
#for (Foo, 20, 339, 10)
|
||||
#local Dx = R * sin(radians(Foo));
|
||||
#local Dz = R * cos(radians(Foo));
|
||||
cone { 0, 0.01, y*0.41, 0.10 translate <Dx, 0, Dz> }
|
||||
#end
|
||||
}
|
||||
// pigment { color Red*0.8 }
|
||||
texture { T }
|
||||
#end // macro
|
||||
|
||||
/* ======================================================= */
|
||||
|
||||
@ -34,7 +60,7 @@ union {
|
||||
difference {
|
||||
cylinder { 0, y*H_gylampe, R_gyro }
|
||||
cylinder { y*0.01, y*(H_gylampe-0.01), R_gyro*0.97 }
|
||||
#local WB = 0.015;
|
||||
#local WB = 0.017;
|
||||
box { <-1, 0.03, -WB>, <1, (H_gylampe-0.03), WB> }
|
||||
box { <-WB, 0.03, -1>, <WB, (H_gylampe-0.03), 1> }
|
||||
#undef WB
|
||||
@ -65,15 +91,13 @@ union {
|
||||
|
||||
#macro Les_GyroPhares ()
|
||||
union {
|
||||
#local E = SzSol * 0.488;
|
||||
object { GyroPhare () translate <-E, 0, -E> }
|
||||
object { GyroPhare () translate < E, 0, -E> }
|
||||
object { GyroPhare () translate <-E, 0, E> }
|
||||
object { GyroPhare () translate < E, 0, E> }
|
||||
object { GyroPhare () translate <-E, 0, 0> }
|
||||
object { GyroPhare () translate < E, 0, 0> }
|
||||
object { GyroPhare () translate < 0, 0, -E> }
|
||||
object { GyroPhare () translate < 0, 0, E> }
|
||||
#local E = SzSol * 0.431;
|
||||
#for (Idx, 0, 360, 60)
|
||||
#local Ang = radians(Idx+7.33);
|
||||
#local Dx = E * sin(Ang);
|
||||
#local Dz = E * cos(Ang);
|
||||
object { GyroPhare () translate <Dx, H_sol, Dz> }
|
||||
#end
|
||||
#undef E
|
||||
}
|
||||
#end
|
||||
@ -136,16 +160,15 @@ blob {
|
||||
|
||||
/* ======================================================= */
|
||||
|
||||
|
||||
/* ======================================================= */
|
||||
|
||||
#declare UnderHoles = array[6]
|
||||
|
||||
#fopen Holes "WS/holes.log" write
|
||||
#for (Idx, 0, 5)
|
||||
#local Angle = Idx* 1.07825;
|
||||
#local Angle = Idx* 1.090;
|
||||
#local Px = sin(Angle) * (SzSol * 1.21);
|
||||
#local Pz = cos(Angle) * (SzSol * 1.21);
|
||||
#local Pz = cos(Angle) * (SzSol * 1.23);
|
||||
#declare UnderHoles[Idx] = <Px, 0, Pz>;
|
||||
#write (Holes, Idx, " ", Angle, " ", UnderHoles[Idx], "\n")
|
||||
#end
|
||||
@ -156,15 +179,15 @@ blob {
|
||||
difference {
|
||||
// plane { y, 0 }
|
||||
#local Big = 300;
|
||||
box { <-Big, -0.10, -Big>, < Big, 0.01, Big> }
|
||||
box { <-Big, -0.15, -Big>, < Big, 0.0000, Big> }
|
||||
#undef Big
|
||||
#for (Foo, 0, 5)
|
||||
cylinder { -y*5, y*5, 4 translate UnderHoles[Foo] }
|
||||
cylinder { -y*5, y*5, 3.4 translate UnderHoles[Foo] }
|
||||
#end
|
||||
}
|
||||
texture {
|
||||
pigment { color Gray20 }
|
||||
normal { bumps 0.38 scale 3 }
|
||||
normal { bumps 0.38 scale 2.6 }
|
||||
finish { phong 0.125 }
|
||||
}
|
||||
// translate -y*1.55
|
||||
@ -292,7 +315,7 @@ sky_sphere {
|
||||
[ 1.0 color Gray10 ]
|
||||
}
|
||||
turbulence 3.14159 + 0.74 * Cos_010(NormClock)
|
||||
scale 1.620
|
||||
scale 1.600
|
||||
// translate -1
|
||||
}
|
||||
#local Kem = 0.09;
|
||||
@ -318,7 +341,8 @@ sky_sphere {
|
||||
union {
|
||||
object { Underground }
|
||||
object { La_GroundBase }
|
||||
// object { Les_Bibelots }
|
||||
object { RedBase_0 (T_Beton_1) translate <RedB_0_X, 0, RedB_0_Z> }
|
||||
object { RedBase_0 (T_Beton_2) translate <RedB_1_X, 0, RedB_1_Z> }
|
||||
// object { Les_Lumieres }
|
||||
object { QuadriLight }
|
||||
object { Les_GyroPhares () }
|
||||
|
18
cutoff.pov
18
cutoff.pov
@ -10,6 +10,10 @@
|
||||
#include "contexte.inc"
|
||||
#include "hexacone.inc"
|
||||
#include "hexabenz.inc"
|
||||
#include "hexawood.inc"
|
||||
#include "trident.inc"
|
||||
|
||||
#include "dynamic.inc"
|
||||
|
||||
// =======================================================
|
||||
|
||||
@ -17,24 +21,26 @@
|
||||
difference {
|
||||
object { HexaCone () }
|
||||
box { -1, 1 translate z*Kbox }
|
||||
translate y*2.5
|
||||
translate y*1.5 + Pos_RedB_1
|
||||
}
|
||||
|
||||
object { Repere translate y*1.5 + Pos_RedB_1 }
|
||||
|
||||
/* this one is for debugging */
|
||||
// object { OpenBox translate <0, 1.5, Kbox> }
|
||||
|
||||
// =======================================================
|
||||
|
||||
object { Le_Decor }
|
||||
// object { Repere }
|
||||
|
||||
// =======================================================
|
||||
|
||||
#local CamX = -2.7 + (1.8*Cos_01(NormClock));
|
||||
#local CamY = 2.58 + (0.034*sqrt(NormClock));
|
||||
#local CamZ = 5.35;
|
||||
#local CamX = -33.4 + (2.83*Cos_01(NormClock));
|
||||
#local CamY = 2.5 + (0.24*sqrt(NormClock));
|
||||
#local CamZ = 5.85 + (2.42*NormClock);
|
||||
|
||||
camera {
|
||||
location <CamX, CamY, CamZ>
|
||||
look_at <0, 2.6, 0>
|
||||
look_at <0, 1.5, 0> + Pos_RedB_1
|
||||
angle 39 - 5*Cos_01(NormClock)
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
*/
|
||||
|
||||
object { Les_Bibelots rotate y*clock translate <28, -1, -32> }
|
||||
object { Les_Bibelots rotate y*clock translate <28, -1, -27> }
|
||||
|
||||
/*
|
||||
* on fait passer un hexatruc dans le ciel
|
||||
@ -56,7 +56,7 @@ object { HexaBenz ()
|
||||
/*
|
||||
* passage d'un hexawood près de la base
|
||||
*/
|
||||
#declare A = <-21, 1.1, (SzSol/2)+8>;
|
||||
#declare B = < 24, 1.1, (SzSol/2)+5>;
|
||||
#declare A = <-21, 1.7, (SzSol/2)+8>;
|
||||
#declare B = < 24, 1.6, (SzSol/2)+5>;
|
||||
#declare P = Interpolate(A, B, NormClock);
|
||||
object { HexaWood translate P }
|
||||
|
26
essai.pov
26
essai.pov
@ -7,6 +7,8 @@
|
||||
|
||||
#include "globals.inc"
|
||||
|
||||
#debug "\n GLOBALS INCLUDED\n"
|
||||
|
||||
#include "contexte.inc"
|
||||
#include "gadgets.inc"
|
||||
#include "hexacone.inc"
|
||||
@ -16,36 +18,36 @@
|
||||
// =======================================================
|
||||
|
||||
// #include "dynamic.inc"
|
||||
|
||||
/* ======================================================= */
|
||||
// =======================================================
|
||||
|
||||
#include "trident.inc"
|
||||
|
||||
#debug "\n ACTION !!!\n"
|
||||
|
||||
#if (1)
|
||||
#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.5, 0, 0> }
|
||||
object { Trident_A () rotate <RZ, 0, RX> translate < 1.5, 0, 0> }
|
||||
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
|
||||
|
||||
|
||||
object { Repere }
|
||||
//.object { Le_Decor }
|
||||
object { Repere translate y*0.6 }
|
||||
object { RedBase_0 (T_Grnt27) }
|
||||
|
||||
// =======================================================
|
||||
|
||||
#local CamX = -2.7 + (2.8*Cos_010(NormClock));
|
||||
#local CamY = 0.21 + (2.3*exp(NormClock));
|
||||
#local CamZ = 5.777 - (0.8*Cos_010(NormClock));
|
||||
#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 K = 3.4;
|
||||
#local K = 4.7;
|
||||
#local CamX = CamX * K;
|
||||
#local CamY = CamY * K;
|
||||
#local CamZ = CamZ * K;
|
||||
|
||||
camera {
|
||||
location <CamX, CamY, CamZ>
|
||||
look_at <0, 0, 0>
|
||||
angle 20 - 5*Cos_01(NormClock)
|
||||
look_at <0, 1.4, 0>
|
||||
angle 20 - 3*Cos_01(NormClock)
|
||||
}
|
||||
|
33
globals.inc
33
globals.inc
@ -11,7 +11,7 @@ global_settings {
|
||||
#include "stones.inc"
|
||||
#include "woods.inc"
|
||||
|
||||
#declare Rng1 = seed(1664);
|
||||
#declare Rng1 = seed(1789);
|
||||
#declare foo = rand(Rng1);
|
||||
#declare Rng2 = seed(now*24*60*60);
|
||||
#declare bar = rand(Rng2);
|
||||
@ -24,10 +24,10 @@ global_settings {
|
||||
*/
|
||||
|
||||
#declare SzSol = 34;
|
||||
#declare H_sol = 0.100;
|
||||
#declare H_sol = 0.000; // c'est quoi exactement ?
|
||||
|
||||
#declare SzBase = 2.90;
|
||||
#declare H_base = 0.50;
|
||||
#declare H_base = 0.23;
|
||||
|
||||
#declare R_basecone = 0.117;
|
||||
#declare H_cone = 0.97;
|
||||
@ -36,7 +36,7 @@ global_settings {
|
||||
#declare H_gyro = 2.10;
|
||||
#declare H_gylampe = 0.25;
|
||||
|
||||
#declare H_QuadriLight = 36;
|
||||
#declare H_QuadriLight = 34;
|
||||
#declare E_QuadriLight = SzSol * 1.35;
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
@ -53,7 +53,7 @@ finish { phong 0.01 }
|
||||
#declare T_WIP_alert = texture
|
||||
{
|
||||
pigment { color Red }
|
||||
finish { specular 0.90 }
|
||||
finish { ambient 1 specular 0.90 }
|
||||
}
|
||||
|
||||
#declare T_Planete_A = texture
|
||||
@ -69,22 +69,39 @@ finish { metallic 0.50 reflection 0.55 }
|
||||
}
|
||||
|
||||
/*
|
||||
* deux textures
|
||||
* deux textures pour faire des batiments
|
||||
*/
|
||||
#declare T_Beton_1 = texture
|
||||
{
|
||||
pigment { color <0.9, 0.8, 0.8> }
|
||||
pigment { color <0.9, 0.8, 0.7> }
|
||||
normal { dents 0.75 scale 0.3 }
|
||||
finish { roughness 1.00 }
|
||||
}
|
||||
|
||||
#declare T_Beton_2 = texture
|
||||
{
|
||||
pigment { color <0.7, 0.6, 0.6> }
|
||||
pigment { color <0.7, 0.6, 0.5> }
|
||||
normal { dents 0.25 scale 2 }
|
||||
finish { roughness 1.00 }
|
||||
}
|
||||
|
||||
|
||||
#declare Flashy = texture {
|
||||
pigment {
|
||||
onion
|
||||
colour_map {
|
||||
[0.00, Red ]
|
||||
[0.40, Gray50 ]
|
||||
[1.00, Blue ]
|
||||
}
|
||||
turbulence 3.14159
|
||||
scale 0.50
|
||||
}
|
||||
finish {
|
||||
emission 0 ambient 1 diffuse 0 specular 0
|
||||
}
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
* Usefull macros
|
||||
|
@ -46,13 +46,14 @@ intersection {
|
||||
height_field {
|
||||
png "datas/hf.png" smooth
|
||||
translate <-.5, 0, -.5>
|
||||
scale <SzSol, 1, SzSol>
|
||||
#local SC = SzSol * 1.130;
|
||||
scale <SC, 0.90, SC>
|
||||
texture {
|
||||
pigment {
|
||||
image_map { png "datas/cmap.png" }
|
||||
rotate x*90
|
||||
translate <-.5, 0, -.5>
|
||||
scale <SzSol, 1, SzSol>
|
||||
scale <SC, 1, SC>
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -65,6 +66,9 @@ translate y*H_sol
|
||||
/* ======================================================= */
|
||||
#declare GroundBase_a = object
|
||||
{
|
||||
/*
|
||||
C'est quoi ce truc ?
|
||||
*/
|
||||
union {
|
||||
#local Dx = 1.5;
|
||||
#local Dz = 1.0;
|
||||
@ -92,18 +96,20 @@ merge {
|
||||
}
|
||||
}
|
||||
|
||||
#declare GroundBase_b = object
|
||||
#declare GroundBase_estrade = object
|
||||
{
|
||||
#local Sz = SzBase - 0.14;
|
||||
#local Hc = H_base;
|
||||
union {
|
||||
box { <-SzBase, 0, -SzBase>, <SzBase, H_base, SzBase> }
|
||||
object { GroudBase_coin translate <-Sz, 0, -Sz> }
|
||||
object { GroudBase_coin translate < Sz, 0, -Sz> }
|
||||
object { GroudBase_coin translate <-Sz, 0, Sz> }
|
||||
object { GroudBase_coin translate < Sz, 0, Sz> }
|
||||
object { GroudBase_coin translate <-Sz, Hc, -Sz> }
|
||||
object { GroudBase_coin translate < Sz, Hc, -Sz> }
|
||||
object { GroudBase_coin translate <-Sz, Hc, Sz> }
|
||||
object { GroudBase_coin translate < Sz, Hc, Sz> }
|
||||
}
|
||||
texture { T_Grnt27 rotate 9 scale 0.32 }
|
||||
#undef Sz
|
||||
#undef Hc
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
@ -112,13 +118,14 @@ texture { T_Grnt27 rotate 9 scale 0.32 }
|
||||
{
|
||||
union {
|
||||
object { GroundBase_Sol }
|
||||
object { GroundBase_b translate y*H_sol }
|
||||
object { GroundBase_estrade translate y*H_sol }
|
||||
/*
|
||||
* ici, mettre la cabane
|
||||
*/
|
||||
#local Dz = <0, 0, -7>;
|
||||
// object { GroundBase_a translate Dz }
|
||||
object { GroundBase_a translate Dz }
|
||||
object { Cabane_Base_2 rotate y*180 translate Dz }
|
||||
#undef Dz
|
||||
}
|
||||
translate y*(H_sol+H_base)
|
||||
}
|
||||
|
24
hexabenz.pov
24
hexabenz.pov
@ -9,11 +9,21 @@
|
||||
#include "contexte.inc"
|
||||
#include "hexacone.inc"
|
||||
#include "hexabenz.inc"
|
||||
#include "hexawood.inc"
|
||||
#include "trident.inc"
|
||||
|
||||
#include "dynamic.inc"
|
||||
|
||||
#local K = 1.48;
|
||||
object { HexaBenz () rotate y*90 translate <-K, 2.85, 0> }
|
||||
object { HexaBenz () translate < K, 2.67, 0> }
|
||||
#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 }
|
||||
|
||||
// =======================================================
|
||||
|
||||
@ -22,12 +32,14 @@ object { Le_Decor }
|
||||
|
||||
// object { Repere scale 2 }
|
||||
|
||||
#declare Loc_cam = <0, 2, 1> + (Pos_RedB_0 * 1.33333);
|
||||
|
||||
camera {
|
||||
location <-3.9+(11*NormClock), 1.90, 7.59-NormClock>
|
||||
look_at <0.17, 1.47, 0>
|
||||
location Loc_cam
|
||||
look_at Pos_RedB_0 + <0, 1, 0>
|
||||
// focal_point <0.37, 0.0, 0>
|
||||
// aperture 0.046
|
||||
// blur_samples 30
|
||||
angle 60 - 28 * Cos_01(NormClock)
|
||||
angle 40 - 15 * Cos_01(NormClock)
|
||||
}
|
||||
|
||||
|
25
hexacone.pov
25
hexacone.pov
@ -9,11 +9,21 @@
|
||||
#include "contexte.inc"
|
||||
#include "hexacone.inc"
|
||||
#include "hexabenz.inc"
|
||||
// #include "trident.inc"
|
||||
#include "hexawood.inc"
|
||||
#include "trident.inc"
|
||||
|
||||
#local K = 1.48;
|
||||
object { HexaCone () rotate y*90 translate <-K, 2.7, 1> }
|
||||
object { HexaCone () translate < K, 2.6, 1> }
|
||||
#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 }
|
||||
|
||||
@ -24,10 +34,11 @@ object { Le_Decor }
|
||||
|
||||
// object { Repere scale 2 }
|
||||
|
||||
#declare Loc_cam = <2, 2, -1> + (Pos_RedB_0 * 1.263);
|
||||
|
||||
camera {
|
||||
location
|
||||
<-1.9+(8*NormClock), 0.70+NormClock, 7.59-NormClock>
|
||||
look_at <0.07, 1.55, 0>
|
||||
location Loc_cam
|
||||
look_at Pos_RedB_0 + <0.12, 1.10, 0>
|
||||
// focal_point <0.37, 0.90, 0>
|
||||
// aperture 0.046
|
||||
// blur_samples 30
|
||||
|
@ -59,13 +59,13 @@ union {
|
||||
#declare PosY = 0;
|
||||
#declare PosZ = RO * cos(CK);
|
||||
object { HexaBenz ()
|
||||
rotate -y*CK*42.3 translate <PosX, PosY, PosZ>
|
||||
rotate -y*CK*62.3 translate <PosX, PosY, PosZ>
|
||||
}
|
||||
#declare PosX = RO * sin(CK+2.12);
|
||||
#declare PosY = 0;
|
||||
#declare PosZ = RO * cos(CK+2.23);
|
||||
object { HexaCone ()
|
||||
rotate y*CK*49.22 translate <PosX, PosY, PosZ>
|
||||
rotate y*CK*79.22 translate <PosX, PosY, PosZ>
|
||||
}
|
||||
|
||||
object { Planete rotate (-clock*0.21)*y }
|
||||
|
@ -17,9 +17,9 @@
|
||||
|
||||
#include "dynamic.inc"
|
||||
|
||||
#declare PosX = 2.95;
|
||||
#declare PosX = 3.95;
|
||||
#declare PosY = 2.60 + (NormClock*0.28);
|
||||
#declare PosZ = (NormClock-0.5) * 41.27;
|
||||
#declare PosZ = (NormClock-0.5) * 44.27;
|
||||
object { HexaCone () translate <PosX, PosY, PosZ> }
|
||||
|
||||
object { HexaCone () translate <PosX+2.96, PosY+1.82, PosZ-15.5> }
|
||||
|
@ -19,14 +19,14 @@
|
||||
|
||||
object { Le_Decor }
|
||||
|
||||
#declare CK = 144 + (clock * 0.36);
|
||||
#declare Dcam = 3.65;
|
||||
#declare CK = 144 + (clock * 0.27);
|
||||
#declare Dcam = 3.95;
|
||||
#declare CamX = Dcam * sin(radians(CK));
|
||||
#declare CamZ = Dcam * 1.20 * cos(radians(CK));
|
||||
|
||||
#declare Lat = <0.03, 1.48, 0.17>;
|
||||
#declare Lat = <0.03, 1.58, 0.17>;
|
||||
camera {
|
||||
location <CamX, 1.87, CamZ>
|
||||
location <CamX, 1.97, CamZ>
|
||||
look_at Lat
|
||||
// focal_point Lat
|
||||
// aperture 0.046
|
||||
|
@ -24,7 +24,7 @@ object { Repere scale 2 translate y*2 }
|
||||
// =======================================================
|
||||
|
||||
#declare Debut = <-3, 87, 47> ;
|
||||
#declare Fin = < 2, 99, 7> ;
|
||||
#declare Fin = < 2, 91, 7> ;
|
||||
#declare Pos = Cos_01(NormClock);
|
||||
#declare PosCam = Interpolate(Debut, Fin, Pos);
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
Img_Width=1024
|
||||
Img_Height=720
|
||||
|
||||
TEXTCOL="PowderBlue"
|
||||
TEXTCOL="CornflowerBlue"
|
||||
STROKOL="RosyBrown"
|
||||
|
||||
NBFRAMES=360
|
||||
|
@ -39,8 +39,8 @@ object { HexaWood translate P }
|
||||
|
||||
object { Le_Decor }
|
||||
|
||||
#declare CamY = 31 + (13.37*Cos_01(NormClock));
|
||||
#declare LatY = -3 + (1.12*NormClock);
|
||||
#declare CamY = 31 + (12.34 * Cos_01(NormClock));
|
||||
#declare LatY = -3 + ( 1.12 * NormClock);
|
||||
|
||||
camera {
|
||||
location <-3.60, CamY, 21.09>
|
||||
|
74
trident.inc
74
trident.inc
@ -10,14 +10,16 @@ cone { 0, R_basecone, y*0.89, 0.0001 }
|
||||
#macro Trid_A_cone ()
|
||||
difference {
|
||||
object { Trid_cone }
|
||||
object { Trid_cone }
|
||||
object { Trid_cone translate -y*0.001 }
|
||||
#local Foo = rand(Rng1);
|
||||
#if (Foo < 0.333)
|
||||
pigment { color Red }
|
||||
#elseif (Foo < 0.666)
|
||||
pigment { color Green }
|
||||
#if (Foo < 0.25)
|
||||
texture { T_Brass_2C }
|
||||
#elseif (Foo < 0.50)
|
||||
texture { T_Silver_3A }
|
||||
#elseif (Foo < 0.75)
|
||||
texture { T_Chrome_3A }
|
||||
#else
|
||||
pigment { color Blue }
|
||||
texture { Flashy }
|
||||
#end // else
|
||||
#undef Foo
|
||||
}
|
||||
@ -26,35 +28,55 @@ difference {
|
||||
#macro Trid_A_head ()
|
||||
union {
|
||||
#for (A, 0, 360, 120)
|
||||
#local E = 0.44;
|
||||
#local Tx = E * sin(radians(A));
|
||||
#local Ty = 0;
|
||||
#local Tz = E * cos(radians(A));
|
||||
object { Trid_A_cone () translate <Tx, Ty, Tz> }
|
||||
#local E = 0.21;
|
||||
#local Tx = E * sin(radians(A));
|
||||
#local Tz = E * cos(radians(A));
|
||||
object { Trid_A_cone () translate <Tx*2, 0, Tz> }
|
||||
#end // for
|
||||
#undef Tx
|
||||
#undef Ty
|
||||
#undef Tz
|
||||
}
|
||||
#end
|
||||
// ------------------------------------------------------
|
||||
#macro Trid_A_body ()
|
||||
#local L = Trid_length / 2;
|
||||
merge {
|
||||
cylinder { <0, -L, 0>, <0, L, 0>, 0.065 }
|
||||
sphere { 0, 0.065 scale <1, 6, 1> translate y*L }
|
||||
#if (rand(Rng1) < 0.50)
|
||||
texture { T_Silver_2C }
|
||||
#else
|
||||
texture { T_Copper_1E }
|
||||
#end
|
||||
}
|
||||
#undef L
|
||||
#end // macro
|
||||
// ------------------------------------------------------
|
||||
#macro Trid_A_ailette ()
|
||||
union {
|
||||
#local E = 0.46;
|
||||
object { Trid_A_cone () scale 0.7 translate x*E }
|
||||
cylinder { 0, x*E, 0.014
|
||||
scale <1, 3, 1> texture { T_Silver_3A } }
|
||||
#undef E
|
||||
}
|
||||
#end
|
||||
// ------------------------------------------------------
|
||||
#macro Trid_A_tail ()
|
||||
union {
|
||||
#for (A, 0, 360, 120)
|
||||
object { Trid_A_ailette () rotate (A+270)*y }
|
||||
#end // for
|
||||
}
|
||||
#end
|
||||
// ------------------------------------------------------
|
||||
#declare Trid_A_body = object
|
||||
{
|
||||
#local L = Trid_length / 2;
|
||||
merge {
|
||||
cylinder { <0, -L, 0>, <0, L, 0>, 0.065 }
|
||||
sphere { 0, 0.065 scale <1, 4, 1> translate y*L }
|
||||
texture { WIP_color }
|
||||
}
|
||||
#undef L
|
||||
}
|
||||
// ------------------------------------------------------
|
||||
// ------------------------------------------------------
|
||||
#macro Trident_A ()
|
||||
union {
|
||||
object { Trid_A_head () translate y*0.95 }
|
||||
object { Trid_A_body }
|
||||
// object { Trid_A_tail }
|
||||
object { Trid_A_head () translate y*0.85 }
|
||||
object { Trid_A_body () }
|
||||
object { Trid_A_tail () translate -y*0.6 }
|
||||
// object { Repere translate <0.1, 0, 0.1> }
|
||||
}
|
||||
#end
|
||||
// ------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user