%@AUTEUR: Maxime Chupin %@DATE: 28 janvier 2010 %@MODIFICATION: 12 novembre 2016 (JMS) ----------------------------------------- %- Séparation du fond et des images variables avec cadre pour caler les BoundingBox %- Modification des codes des caractères astronomiques de façon à utiliser une % fonte de type 1 pour la production des images SVG. %------------------------------------------------------------------------------- prologues := 3; outputtemplate := "svg/%j%03c.svg"; outputformat := "svg"; u:=1cm; picture zodiaque; color Soleil, Mercure, Venus, Terre, Mars, Jupiter; numeric mercure, venus, terre, mars, jupiter, rayonplanete; picture Mer, Ven, Ter, Mar, Jup; %%%%%%%%%%%%%%%% les couleurs %%%%%%%%%%%%%%%%%%%%%%%% Soleil:= red+4/5*green; Mercure:= 2/3*(red+green+blue); Venus:= 5/6*red+4/5*green+0.6*blue; Terre := 1/4*red+1/4*green+4/5*blue; Mars := 0.8*red+0.2*green+0.3*blue; Jupiter := 0.9*red+0.6*green+0.6*blue; %%%%%%%%%%%%%%% les rayons des orbites %%%%%%%%%%%%%%% terre:=2u; mercure:=0.38709*terre; venus:=0.72333*terre; mars:=1.52366*terre; jupiter:=5.20336*terre; %%%%%%%%%%%%%% le trace des planetes %%%%%%%%%%%%%%%% rayonplanete:=10pt; Mer:=image( fill fullcircle scaled rayonplanete withcolor Mercure; draw fullcircle scaled rayonplanete; ); Ven:=image( fill fullcircle scaled rayonplanete withcolor Venus; draw fullcircle scaled rayonplanete; ); Ter:=image( fill fullcircle scaled rayonplanete withcolor Terre; draw fullcircle scaled rayonplanete; ); Mar:=image( fill fullcircle scaled rayonplanete withcolor Mars; draw fullcircle scaled rayonplanete; ); Jup:=image( fill fullcircle scaled rayonplanete withcolor Jupiter; draw fullcircle scaled rayonplanete; ); %%%%%%%%%%%%%% rapport de vitesse angulaire %%%%%%%%%%%%%%%%%%%%%%% numeric Vmer, Vven, Vter, Vmar, Vjup; Vter:=2; Vmer:=Vter*4.152093; Vven:=Vter*1.625524; Vmar:=Vter*0.531700; Vjup:=Vter*0.084250; %%% le cercle du zodiaque modelisant le plan du systeme solaire %%% zodiaque:=image( pickup pencircle scaled 2pt; draw fullcircle scaled 13u; draw fullcircle scaled 19u; for i:=1 upto 12: draw (char(96+i) infont "astrosym") rotated (30*(i-1)+90) scaled 4 shifted (8.4u*(cosd(30*(i-1)),sind(30*(i-1)))); draw ((-1.5u,0)--(1.5u,0)) rotated (30*(i-1)-10) shifted (8u*(cosd(30*(i-1)-10),sind(30*(i-1)-10))); endfor; ); path fond, cadre; fond := 1.2*(-jupiter,-jupiter)--1.2*(-jupiter,jupiter)--1.2*(jupiter,jupiter)--1.2*(jupiter,-jupiter)--cycle; beginfig(0); fill fond withcolor 0.9*white; draw zodiaque; draw Mer shifted (1.4*jupiter,0.5*jupiter); draw char(67) infont "astrosym" scaled 3 shifted (1.4*jupiter+0.5cm,0.5*jupiter); draw Ven shifted (1.4*jupiter,0.3*jupiter); draw char(68) infont "astrosym" scaled 3 shifted (1.4*jupiter+0.5cm,0.3*jupiter); draw Ter shifted (1.4*jupiter,0.1*jupiter); draw char(69) infont "astrosym" scaled 3 shifted (1.4*jupiter+0.5cm,0.1*jupiter); draw Mar shifted (1.4*jupiter,-0.1*jupiter); draw char(70) infont "astrosym" scaled 3 shifted (1.4*jupiter+0.5cm,-0.1*jupiter); draw Jup shifted (1.4*jupiter,-0.3*jupiter); draw char(71) infont "astrosym" scaled 3 shifted (1.4*jupiter+0.5cm,-0.3*jupiter); cadre := bbox currentpicture; cadre := cadre scaled 1.02; draw cadre withcolor white; endfig; for i:=0 upto 720: beginfig(i+1); pair PosMer, PosVen, PosTer,PosMar, PosJup; PosMer:=mercure*(cosd(i*Vmer),sind(i*Vmer)); PosVen:=venus*(cosd(i*Vven),sind(i*Vven)); PosTer:=terre*(cosd(i*Vter),sind(i*Vter)); PosMar:=mars*(cosd(i*Vmar),sind(i*Vmar)); PosJup:=jupiter*(cosd(i*Vjup),sind(i*Vjup)); draw 30[PosTer,PosVen]--30[PosVen,PosTer] withcolor Venus withpen pencircle scaled 3pt; draw 10[PosTer,PosJup]--10[PosJup,PosTer] withcolor Jupiter withpen pencircle scaled 3pt; draw 15[PosTer,(0,0)]--15[(0,0),PosTer] withcolor Soleil withpen pencircle scaled 3pt; draw Mer shifted PosMer; draw Ven shifted PosVen; draw Ter shifted PosTer; draw Mar shifted PosMar; draw Jup shifted PosJup; fill fullcircle scaled 15pt withcolor Soleil; draw fullcircle scaled 15pt withpen pencircle scaled 1pt; clip currentpicture to cadre; draw cadre withcolor white; endfig; endfor; end.