Ajout d'une animation avec fond séparé : le mouvement rétrograde des planètes
[svganimation.git] / mvtretrograde / astro.mp
diff --git a/mvtretrograde/astro.mp b/mvtretrograde/astro.mp
new file mode 100644 (file)
index 0000000..49374f6
--- /dev/null
@@ -0,0 +1,136 @@
+%@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.
\ No newline at end of file

Licence Creative Commons Les fichiers de Syracuse sont mis à disposition (sauf mention contraire) selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.