source: trunk/SRC/ToBeReviewed/PLOTS/style.pro @ 114

Last change on this file since 114 was 114, checked in by smasson, 18 years ago

new compilation options (compile_opt idl2, strictarrsubs) in each routine

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 3.5 KB
Line 
1;------------------------------------------------------------
2;------------------------------------------------------------
3;------------------------------------------------------------
4;+
5; NAME:style
6;
7; PURPOSE:choisit la facon de tracer les isolignes
8;
9; CATEGORY:graphique
10;
11; CALLING SEQUENCE:style,labstyle,level_z2d,linestyle,thick
12;
13; INPUTS:labstyle: nombre auquel se refaire le styel de trace choisit
14;        level_z2d:vecteur contenant les valeures des isolignes a tracer
15;
16; KEYWORD PARAMETERS:
17;
18; OUTPUTS:
19;       linestyle:vecteur utilise pour definir le style des
20;       isocontours
21;       rq: pour memoire:
22;               Index   Linestyle       
23;               0       Solid   
24;               1       Dotted 
25;               2       Dashed 
26;               3       Dash Dot       
27;               4       Dash Dot Dot Dot       
28;               5       Long Dashes     
29;       thick:vecteur definissant l'epaisseur de l'isoligne
30;
31; COMMON BLOCKS:
32;
33; SIDE EFFECTS:
34;
35; RESTRICTIONS:
36;
37; EXAMPLE:
38;
39; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
40;
41;-
42;------------------------------------------------------------
43;------------------------------------------------------------
44;------------------------------------------------------------
45pro style,labstyle,level_z2d,linestyle,thick
46;
47  compile_opt idl2, strictarrsubs
48;
49   case labstyle of
50      0: begin
51;serie: deux lignes continues fines, une ligne continue grasse
52         thick=[1,1,2]
53         linestyle=[0]
54         return
55      end
56      1: begin
57;serie: avant le mileu des levels: tiret fin. apres trait continu fin.
58; si le mileu est dessine il est en trait continu gras
59         impair=n_elements(level_z2d)-2*fix(n_elements(level_z2d)/2)
60         a=replicate(0,fix(n_elements(level_z2d)/2))
61         b=replicate(1,fix(n_elements(level_z2d)/2))
62         c=replicate(2,fix(n_elements(level_z2d)/2))         
63         if impair then begin
64            thick=[b,2,b]
65            linestyle=[c,0,a]
66         endif else begin
67            thick=[0]
68            linestyle=[c,a]
69         endelse
70         return
71      end
72      2: begin
73;serie: avant le seuil (definit en repondant a une question): tiret fin.
74; apres trait continu fin. si le seuil est dessine il est en trait continu gras
75         seuil=xquestion('Quelle est la limite tirets/trait continu? ','0')
76         seuil = float(seuil)
77         rien=where(level_z2d lt seuil,n)
78         a=replicate(0,n_elements(level_z2d)-n)
79         c=replicate(2,n)         
80         if seuil eq level_z2d[n] then begin
81            thick=[replicate(1,n),2,replicate(1,n_elements(level_z2d)-1-n)]
82            linestyle=[c,a]
83         endif else begin
84            thick=[0]
85            linestyle=[c,a]
86         endelse
87         return
88      end
89      3: begin
90         n = n_elements(level_z2d)
91         seuil = level_z2d[1+n/2]
92
93         thick = intarr(n)
94         thick[indgen(n/4)*4] = 1
95         thick[indgen(n/4)*4+1] = 1
96         thick[indgen(n/4)*4+2] = 2
97         thick[indgen(n/4)*4+3] = 1
98
99         linestyle = intarr(n)
100         linestyle[indgen(n/4)*4] = 3
101         linestyle[indgen(n/4)*4+1] = 0
102         linestyle[indgen(n/4)*4+2] = 0
103         linestyle[indgen(n/4)*4+3] = 0
104
105         labels = intarr(n)
106         labels[indgen(n/2)*2] = 1
107         labels[n/2] = 0
108
109         return
110      end
111      4: begin
112; trait continu gras pour 0
113         seuil = 1.e-6
114         thick=replicate(.5,  n_elements(level_z2d))
115         linestyle=[0]
116         rien=where(abs(level_z2d)/max(abs(level_z2d)) LT seuil)
117         if rien[0] NE -1 then thick[rien[0]] = 3
118      end
119      else: begin
120         ras = report('Le numero de labstyle demande n''existe pas')
121         stop
122      end
123   endcase
124   return
125end
Note: See TracBrowser for help on using the repository browser.