/* 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; , 0.03 #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{, , 0.05} 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; #declare pts=array[141][3] {{-.9983e-1,-.995,-12.07},{-.2046e-1,-.9998,-11.94},{.5905e-1,-.9983,-11.80},{.1382,-.9904,-11.67},{.2164,-.9763,-11.54}, {.2933,-.956,-11.41},{.3684,-.9297,-11.29},{.4411,-.8975,-11.16},{.511,-.8596,-11.04},{.5777,-.8163,-10.92},{.6407,-.7678,-10.80}, {.6997,-.7145,-10.69},{.7594,-.6506,-10.56},{.8134,-.5817,-10.44},{.8611,-.5084,-10.32},{.9022,-.4313,-10.20}, {.9365,-.3508,-10.08},{.9635,-.2676,-9.964},{.9832,-.1824,-9.850},{.9954,-.9576e-1,-9.739},{1.,.3352e-3,-9.620}, {.9953,.9643e-1,-9.502},{.9815,.1916,-9.387},{.9585,.2851,-9.274},{.9267,.3758,-9.164},{.8863,.4632,-9.056},{.8377,.5462,-8.950}, {.7813,.6241,-8.847},{.711,.7032,-8.736},{.6327,.7744,-8.627},{.5473,.8369,-8.521},{.4558,.8901,-8.418},{.3592,.9333,-8.317}, {.2586,.966,-8.219},{.1551,.9879,-8.123},{.4980e-1,.9988,-8.030},{-.6659e-1,.9978,-7.930},{-.1821,.9833,-7.833}, {-.2951,.9555,-7.739},{-.4041,.9147,-7.648},{-.5076,.8616,-7.560},{-.6043,.7967,-7.475},{-.6928,.7211,-7.392},{-.7719,.6358,-7.312}, {-.8468,.5319,-7.227},{-.9078,.4194,-7.146},{-.9539,.3,-7.067},{-.9844,.1757,-6.992},{-.9988,.4846e-1,-6.920}, {-.9968,-.7953e-1,-6.851},{-.9785,-.2062,-6.785},{-.9441,-.3295,-6.722},{-.8943,-.4475,-6.662},{-.8298,-.558,-6.605}, {-.7432,-.669,-6.546},{-.6419,-.7668,-6.490},{-.5278,-.8493,-6.438},{-.4033,-.9151,-6.389},{-.2708,-.9626,-6.344}, {-.1329,-.9911,-6.302},{.7586e-2,-1.,-6.263},{.148,-.989,-6.228},{.2854,-.9584,-6.197},{.4172,-.9088,-6.168},{.5407,-.8412,-6.143}, {.6535,-.757,-6.122},{.7533,-.6577,-6.103},{.8382,-.5454,-6.088},{.9065,-.4223,-6.076},{.9568,-.2908,-6.068},{.9881,-.1535,-6.063}, {.9999,-.1320e-1,-6.061},{.9919,.1274,-6.062},{.9641,.2654,-6.067},{.9173,.3982,-6.074},{.8523,.5231,-6.086},{.7704,.6376,-6.100}, {.6732,.7395,-6.118},{.5627,.8267,-6.139},{.441,.8975,-6.163},{.3106,.9505,-6.191},{.174,.9847,-6.222},{.3399e-1,.9994,-6.256}, {-.1067,.9943,-6.294},{-.2453,.9694,-6.336},{-.379,.9254,-6.380},{-.5052,.863,-6.428},{-.6214,.7835,-6.480},{-.7253,.6884,-6.535}, {-.8148,.5798,-6.593},{-.8881,.4596,-6.656},{-.9439,.3303,-6.721},{-.9809,.1944,-6.791},{-.9985,.5476e-1,-6.864}, {-.9974,-.7197e-1,-6.933},{-.9803,-.1975,-7.005},{-.9474,-.3199,-7.080},{-.8994,-.4372,-7.158},{-.8368,-.5474,-7.239}, {-.7609,-.6489,-7.324},{-.6727,-.7399,-7.411},{-.5737,-.8191,-7.502},{-.4655,-.885,-7.596},{-.3498,-.9368,-7.694}, {-.2409,-.9706,-7.784},{-.1288,-.9917,-7.878},{-.1498e-1,-.9999,-7.974},{.9899e-1,-.9951,-8.073},{.2117,-.9773,-8.175}, {.3216,-.9469,-8.280},{.4274,-.9041,-8.387},{.5275,-.8495,-8.498},{.6119,-.791,-8.600},{.6898,-.724,-8.705},{.7604,-.6495,-8.812}, {.823,-.5681,-8.922},{.8769,-.4807,-9.034},{.9215,-.3883,-9.149},{.9565,-.2917,-9.266},{.9814,-.1921,-9.387},{.9949,-.1007,-9.497}, {1.,-.8409e-2,-9.610},{.9965,.8394e-1,-9.724},{.9845,.1756,-9.842},{.9641,.2657,-9.961},{.9354,.3536,-10.08},{.8988,.4384,-10.21}, {.8545,.5195,-10.33},{.8028,.5962,-10.46},{.7505,.6609,-10.58},{.693,.7209,-10.70},{.6307,.776,-10.82},{.564,.8258,-10.95}, {.4934,.8698,-11.07},{.4194,.9078,-11.20},{.3425,.9395,-11.33},{.2633,.9647,-11.46},{.1822,.9833,-11.60},{.1081,.9941,-11.72}, {.3342e-1,.9994,-11.85},{-.4145e-1,.9991,-11.97}} union{ #declare uu =0; //deb ; #while (uu<=140) //fin) #declare vv=uu+2; sphere{ , r} // (ligne A) // pour avoir des perles régulièrement espacées à l'aide d'un tableau de points calculés avec Maple //sinon utiliser : sphere{, r} à la place de la (ligne A) // mais les perles ne seront pas régulières #declare uu=vv; #end sphere{, r} 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 :- }