1 | ;------------------------------------------------------------ |
---|
2 | ;------------------------------------------------------------ |
---|
3 | ;------------------------------------------------------------ |
---|
4 | ;+ |
---|
5 | ; NAME:animgif |
---|
6 | ; |
---|
7 | ; PURPOSE:construire une animation gif |
---|
8 | ; |
---|
9 | ; CATEGORY:pour faire des dessins animes |
---|
10 | ; |
---|
11 | ; CALLING SEQUENCE:animgif, 'toto.gif' |
---|
12 | ; |
---|
13 | ; INPUTS:toto.gif: c''est le nom du fichier gif contenant |
---|
14 | ; l''animation. Rq ce fichier est place dans le repertoire definit par |
---|
15 | ; iodir. |
---|
16 | ; |
---|
17 | ; KEYWORD PARAMETERS: |
---|
18 | ; |
---|
19 | ; OUTPUTS: |
---|
20 | ; |
---|
21 | ; COMMON BLOCKS: |
---|
22 | ; common.pro |
---|
23 | ; |
---|
24 | ; SIDE EFFECTS:on utilise le Z buffer pour aller plus vite!. |
---|
25 | ; donc si on plante ds animgif il faut faire: |
---|
26 | ; IDL> device, /close |
---|
27 | ; IDL> set_plot, 'x' |
---|
28 | ; IDL> retall |
---|
29 | ; |
---|
30 | ; RESTRICTIONS: si on veut supprimer le @common, |
---|
31 | ; il faut definir a la main la taille de l''image (les |
---|
32 | ; variables xsize et ysize) ainsi que iodir. |
---|
33 | ; |
---|
34 | ; EXAMPLE: |
---|
35 | ; |
---|
36 | ; MODIFICATION HISTORY: Guillaume Roullet (grlod@ipsl.jussieu.fr) |
---|
37 | ; Sebastien Masson (smasson@lodyc.jussieu.fr) |
---|
38 | ; 30/4/1999 |
---|
39 | ;- |
---|
40 | ;------------------------------------------------------------ |
---|
41 | ;------------------------------------------------------------ |
---|
42 | ;------------------------------------------------------------ |
---|
43 | PRO animgif, nomfic |
---|
44 | @common |
---|
45 | ; |
---|
46 | ; recupere la palette de couleur et la place dans rouge, vert, bleu |
---|
47 | ; |
---|
48 | tvlct, rouge,vert,bleu,/get |
---|
49 | ; |
---|
50 | ; complete la palette courante sur 256 couleurs |
---|
51 | ; |
---|
52 | red = [rouge, replicate(255, 256-n_elements(rouge))] |
---|
53 | green = [vert, replicate(255, 256-n_elements(rouge))] |
---|
54 | blue = [bleu, replicate(255, 256-n_elements(rouge))] |
---|
55 | ; |
---|
56 | ; bascule sur le z device, permettant de creer l''image sans |
---|
57 | ; l''afficher |
---|
58 | thisOS = !VERSION.OS_FAMILY |
---|
59 | thisOS = STRMID(thisOS, 0, 3) |
---|
60 | thisOS = STRUPCASE(thisOS) |
---|
61 | set_plot, 'z' |
---|
62 | ; taille de l''image (en nombre de pixel: |
---|
63 | xsize = 30*(petitfeuille*key_portrait+grandfeuille*(1-key_portrait)) |
---|
64 | ysize = 30*(petitfeuille*(1-key_portrait)+grandfeuille*key_portrait) |
---|
65 | device, set_resolution = [xsize, ysize] |
---|
66 | ; |
---|
67 | ; commencement du fichier gif. ecriture d''une image vide |
---|
68 | ; |
---|
69 | reinitplt |
---|
70 | plot, [0], [0], /nodata |
---|
71 | write_gif,iodir+nomfic,tvrd(),red, green, blue, /multiple |
---|
72 | ; |
---|
73 | ; |
---|
74 | ;---------------------------------------------------------------- |
---|
75 | ; debut de la partie a changer |
---|
76 | ;---------------------------------------------------------------- |
---|
77 | ; |
---|
78 | ; boucle de creation de l''image |
---|
79 | ; |
---|
80 | calen = calendriertotem() |
---|
81 | debut = where(calen EQ 19810105) |
---|
82 | debut = where(calen EQ 19790105) |
---|
83 | debut = debut[0] |
---|
84 | if debut EQ -1 then begin |
---|
85 | device, /close |
---|
86 | CASE thisOS of |
---|
87 | 'MAC': SET_PLOT, thisOS |
---|
88 | 'WIN': SET_PLOT, thisOS |
---|
89 | ELSE: SET_PLOT, 'X' |
---|
90 | ENDCASE |
---|
91 | stop |
---|
92 | endif |
---|
93 | |
---|
94 | for i = 0, 73*15-1 do begin |
---|
95 | ; for i = 0, 3*2-1 do begin |
---|
96 | ; for i = 0, 73*2-1 do begin |
---|
97 | if keyword_set(bavard) then print, 'Image numero : '+strtrim(i, 2) |
---|
98 | date = calen[debut+i] |
---|
99 | erase, 255 |
---|
100 | plt, nlec('sst', date, 'ATF'), 19, 29, int = .5, /noerase |
---|
101 | ; plt, nlec('sss', date, 'ATF'), label = 2, /noerase |
---|
102 | ; plt, nlec('htoth', date, 'RE3')-nlec('hpycn', date, 'RE3'), 10, 60, int = 5, /inv, /noerase |
---|
103 | ; domdef, 290,340,-5,15 |
---|
104 | ; plt, norme(nlec('unsurf', date, 'RE3'), nlec('vnsurf', date, 'RE3')), 0, 1.2, int = .1, /noerase |
---|
105 | ; |
---|
106 | ; Ecriture de l''image dans le fichier .gif |
---|
107 | ; |
---|
108 | write_gif,iodir+nomfic,tvrd(),red, green, blue, /multiple |
---|
109 | ENDFOR |
---|
110 | ;---------------------------------------------------------------- |
---|
111 | ; fin de la partie a changer |
---|
112 | ;---------------------------------------------------------------- |
---|
113 | ; |
---|
114 | ; fermeture du fichier |
---|
115 | write_gif,iodir+nomfic,/close |
---|
116 | ; rebascule en mode terminal X |
---|
117 | device, /close |
---|
118 | CASE thisOS of |
---|
119 | 'MAC': SET_PLOT, thisOS |
---|
120 | 'WIN': SET_PLOT, thisOS |
---|
121 | ELSE: SET_PLOT, 'X' |
---|
122 | ENDCASE |
---|
123 | |
---|
124 | |
---|
125 | return |
---|
126 | end |
---|