1 %j'ai du modifier main_memory
3 %modifier /etc/texmf/texmf.d/95NonPath.cnf
4 %main_memory:1500000->40000000 !!!!
6 %puis fmtutil-sys --refresh
7 % ->not ok :( "independent variables" pose problème.
8 % solution: réduction du nombre de points placés.
9 % pb suivant : lorsque l'on a une position de l'observateur avec un
10 % phi>90, rien ne s'affiche->réglé
12 % autre solution envisagée ici : lecture des données dans un fichier
13 % extérieur au format dat par exemple
15 % il faut changer aussi le path size :) >2000 pour une version avec ..
16 % au lieu de -- mais cette version marche pas :(
17 % modifier /etc/texmf/texmf.d/95NonPath.cnf
18 % path_size.mpost=10000
20 % readfrom files=30. Comment changer ? Pas la peine : inclusion d'un
21 % closefrom (présent dans metapost depuis 0.64) pour clotûrer vraiment
22 % chaque fichier en fin de lecture. quand readfrom lit une ligne d'un
23 % fichier, il ne passe pas de suite à la prochaine ligne, il attend
24 % simplement le prochain ordre "readfrom".
26 % ajout de LectureMultiple pour les iles (utilisable pour les lacs :
27 % dépassement metapost ?)
33 vardef Projgeo(expr X)=
35 numeric Xobs,Yobs,Zobs,XProj,YProj;
36 Xobs = -redpart(X)*Aux1 + greenpart(X)*Aux3;
37 Yobs = -redpart(X)*Aux5 - greenpart(X)*Aux6 + bluepart(X)*Aux4;
38 Zobs = -redpart(X)*Aux7 - greenpart(X)*Aux8 - bluepart(X)*Aux2 + Rho;
45 vardef FX(expr t,v)=ray*cosd(c*t)*cosd(c*v)
48 vardef FY(expr t,v)=ray*cosd(c*t)*sind(c*v)
51 vardef FZ(expr t,v)=ray*sind(c*t)
54 vardef arcsind(expr x)=%Définition mathématique en degré ici :)
55 angle((sqrt(1-x**2),x))
60 vardef lecture(expr nomfichier,fond)=
65 nbpts:=scantokens readfrom nomfichier;
68 latlon=scantokens readfrom nomfichier;
69 Coord[k]=ray*(cosd(xpart(latlon/60))*cosd(ypart(latlon/60)),
70 cosd(xpart(latlon/60))*sind(ypart(latlon/60)),sind(xpart(latlon/60)));
71 if ((xpart(latlon/60)>phim) and (xpart(latlon/60)<phip)):
72 if ProduitScalaire(Coord[k]-pte3,Oeil-pte3)>0:
89 remplis pays--cycle withcolor fond;
91 clip currentpicture to cercles(pte3,pte1,pte3,pte1,pte4);
95 vardef lecturemanuel(expr nomfichier,fond)=
100 nbpts:=scantokens readfrom nomfichier;
103 latlon=scantokens readfrom nomfichier;
104 Coord[k]=ray*(cosd(xpart(latlon/60))*cosd(ypart(latlon/60)),
105 cosd(xpart(latlon/60))*sind(ypart(latlon/60)),sind(xpart(latlon/60)));
106 if ((xpart(latlon/60)>phim) and (xpart(latlon/60)<phip)):
107 if ProduitScalaire(Coord[k]-pte3,Oeil-pte3)>0:
117 closefrom nomfichier;
120 pays=Projgeo(Pays[1])
124 remplis pays--cycle withcolor fond;
126 %clip currentpicture to cercles(pte3,pte1,pte3,pte1,pte4);
130 vardef lectureexemple(expr nomfichier,fond)=
135 nbpts:=scantokens readfrom nomfichier;
138 latlon=scantokens readfrom nomfichier;
139 Coord[k]=ray*(cosd(xpart(latlon/60))*cosd(ypart(latlon/60)),
140 cosd(xpart(latlon/60))*sind(ypart(latlon/60)),sind(xpart(latlon/60)));
142 closefrom nomfichier;
144 pays=Projgeo(Coord[1])
148 trace pays dashed evenly;
149 %clip currentpicture to cercles(pte3,pte1,pte3,pte1,pte4);
155 figureespace(-100u,-100u,100u,100u);
156 Initialisation(5,-115,-10,750);
157 numeric phim,phip,phii;%phi moins -- phi plus - phi intermédiaire
158 phim=Phi+arcsind(ray/Rho)-90;
159 phip=Phi+90-arcsind(ray/Rho);
161 pte1=ray*(cosd(phim)*cosd(Theta),cosd(phim)*sind(Theta),sind(phim));
162 pte2=ray*(cosd(phip)*cosd(Theta),cosd(phip)*sind(Theta),sind(phip));
164 pte4-pte3=Normal((0,0,0),pte1,pte2);
177 remplis cercles(pte3,pte1,pte3,pte1,pte4) withcolor ciel;
178 %%amerique du sud :) Manque l'arctique.
179 lecturemanuel("../DATA/bresil.dat",vert);
180 trace cercles(pte3,pte1,pte3,pte1,pte4);
183 figureespace(-100u,-100u,100u,100u);
184 Initialisation(5,-115,-10,750);
185 numeric phim,phip,phii;%phi moins -- phi plus - phi intermédiaire
186 phim=Phi+arcsind(ray/Rho)-90;
187 phip=Phi+90-arcsind(ray/Rho);
189 pte1=ray*(cosd(phim)*cosd(Theta),cosd(phim)*sind(Theta),sind(phim));
190 pte2=ray*(cosd(phip)*cosd(Theta),cosd(phip)*sind(Theta),sind(phip));
192 pte4-pte3=Normal((0,0,0),pte1,pte2);
205 remplis cercles(pte3,pte1,pte3,pte1,pte4) withcolor ciel;
206 %%amerique du sud :) Manque l'arctique.
207 lecture("../DATA/bresil.dat",vert);
208 lectureexemple("../DATA/bresil.dat",noir);
209 trace cercles(pte3,pte1,pte3,pte1,pte4);