Chainettes
Les figures ci-dessous simulent la figure d'équilibre d'un fil pesant inextensible reposant sans frottement sur un cylindre, un cône ou une sphère.
Ces programmes ont été réalisés suite à la construction de la page
Chainettes du site mathcurve.com de Robert Ferréol.
Les chainettes de la première ligne du tableau sont construites avec leur équation dans le fichier Povray.
Les chainettes de la deuxième ligne du tableau sont construites dans le fichier Povray avec un tableau de points calculés avec Maple.
Les perles sont régulièrement espacées grace à un tableau de points calculés avec Maple car sinon l'abscisse curviligne n'étant pas une fonction linéaire du paramètre les perles ne sont pas régulièrement disposées( ce tableau n'est disponible que pour un cas, dans le fichier "chainette.txt".
Le programme Maple qui permet de trouver l'équation et faire des tracés analogues est
ici
voir en 800x600 |
voir en 800x600 |
voir en 800x600 |
|
voir en 800x600 |
voir en 800x600 |
voir en 800x600 |
voir en 800x600 |
/*
Chainette cylindrique
/* en cylindrique : z=1/a*ch((u+b)*a), u étant l'angle polaire */
#include "colors.inc"
#include "metals.inc"
#declare I_Glass =
interior{
ior 1.51
caustics 2
fade_distance 1.5
fade_power 0.8
}
#declare T_Glass = texture {
pigment { color red 0.95 green 0.95 blue 1.0 filter 0.95 }
finish {
ambient 0.0
diffuse 0.0
reflection 0.05
phong 0.3
phong_size 90
}
}
#declare a=0.165; // 1.9 ; 0.395 ;
#macro xx(uu) cos(uu)
#end
#macro yy(uu) sin(uu)
#end
#macro zz(uu) -cosh(uu*a)/a
#end
// ----------------------
#declare deb=-2.5*pi-0.1;// 0.73 :-pi/2 ; 2.36:-2.5*pi ; 1.6: -1.5*pi
#declare fin=2.5*pi+0.1; // 0.73 :pi/2+0.1;
#declare n=200; // 0.73 :45 ; 3.6:80 ; 1.6:60
#declare r=0.1;
#declare pas=(fin-deb)/n;
//----------------------
//Lights, camera, action
camera { orthographic location < 0,8,-10>
look_at < 0,4, 0>
}
light_source { <-2, 10,-8> color rgb 1 }
light_source { <5, 10, -8> color rgb 1 shadowless }
background{ color White*0.95}
// ---------------------------------------
union {
//---------------------- le fil ----------------
#declare uu = deb;
sphere_sweep {
linear_spline
n+1, // si ça plante il faut ajouter +1 ou -1
#while (uu<=fin)
#declare vv=uu+pas;
#declare uu=vv;
#end
tolerance 0.1 // optional
texture{ T_Gold_1A }
finish { diffuse 0.2 ambient 0.6 reflection 0.1 roughness 0.01 specular 0.8 }
}
//----------- la tringle horizontale et le clou ------------------
union{ cylinder{
cylinder{< (xx(deb)+xx(fin))/2,(yy(deb)+yy(fin))/2,(zz(deb)+zz(fin))/2-0.2>,
<(xx(deb)+xx(fin))/2,(yy(deb)+yy(fin))/2,(zz(deb)+zz(fin))/2+0.2>,0.1 }
sphere{<(xx(deb)+xx(fin))/2,(yy(deb)+yy(fin))/2,(zz(deb)+zz(fin))/2-0.21>,0.1 }
texture { T_Chrome_4A}
finish { diffuse 0.2 ambient 0.6 reflection 0.1 roughness 0.01 specular 0.8 }
}
//------------- les sphères -----------------------------
#declare r=0.1;
union{
#declare uu =deb;
#while (uu<=fin)
#declare vv=uu+4*pas;
sphere{
#declare uu=vv;
#end
sphere{
texture{ T_Chrome_5A }
finish { diffuse 0.2 ambient 0.6 reflection 0.2 roughness 0.0001 specular 0.8 }
}/**/
//----------------- le cylindre support ----------------
#declare bas=-5.7 ; //1.9:-0.1 ;0.395 :-2.4 ; 0.2 :
cylinder{<0,0,bas><0,0,zz(fin)+0.2>,1-r
pigment{ color Red }
finish { diffuse 0.2 ambient 0.6 reflection 0.1 roughness 0.0001 specular 0.8 }
}
// -----------------------------------------------------
// support en plexiglass
cylinder { <0,0,bas>,<0,0,bas+0.35>,1.8
texture { T_Glass}
interior { I_Glass}
finish { diffuse 0.2 ambient 0.6 reflection 0.1 roughness 0.0001 specular 0.8 }
}
// ---------------------------------------
scale 1.45
rotate <90,60,0 > // 0.74 :<90,60,0 > ; 2.36:<90,50,0 > ; 0.395:<90,-40,0 >
translate <0,bas-2.6,0> // 0.73 :<0,-0.8,0> ; 0.4 :-0.8 ; 0.2 :-
}