source: trunk/PLOTS/style.pro @ 2

Last change on this file since 2 was 2, checked in by opalod, 22 years ago

Initial revision

  • 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   case labstyle of
47      0: begin
48;serie: deux lignes continues fines, une ligne continue grasse
49         thick=[1,1,2]
50         linestyle=[0]
51         return
52      end
53      1: begin
54;serie: avant le mileu des levels: tiret fin. apres trait continu fin.
55; si le mileu est dessine il est en trait continu gras
56         impair=n_elements(level_z2d)-2*fix(n_elements(level_z2d)/2)
57         a=replicate(0,fix(n_elements(level_z2d)/2))
58         b=replicate(1,fix(n_elements(level_z2d)/2))
59         c=replicate(2,fix(n_elements(level_z2d)/2))         
60         if impair then begin
61            thick=[b,2,b]
62            linestyle=[c,0,a]
63         endif else begin
64            thick=[0]
65            linestyle=[c,a]
66         endelse
67         return
68      end
69      2: begin
70;serie: avant le seuil (definit en repondant a une question): tiret fin.
71; apres trait continu fin. si le seuil est dessine il est en trait continu gras
72         seuil=xquestion('Quelle est la limite tirets/trait continu? ','0')
73         seuil = float(seuil)
74         rien=where(level_z2d lt seuil,n)
75         a=replicate(0,n_elements(level_z2d)-n)
76         c=replicate(2,n)         
77         if seuil eq level_z2d(n) then begin
78            thick=[replicate(1,n),2,replicate(1,n_elements(level_z2d)-1-n)]
79            linestyle=[c,a]
80         endif else begin
81            thick=[0]
82            linestyle=[c,a]
83         endelse
84         return
85      end
86      3: begin
87         n = n_elements(level_z2d)
88         seuil = level_z2d(1+n/2)
89
90         thick = intarr(n)
91         thick(indgen((n)/4)*4) = 1
92         thick(indgen((n)/4)*4+1) = 1
93         thick(indgen((n)/4)*4+2) = 2
94         thick(indgen((n)/4)*4+3) = 1
95
96         linestyle = intarr(n)
97         linestyle(indgen((n)/4)*4) = 3
98         linestyle(indgen((n)/4)*4+1) = 0
99         linestyle(indgen((n)/4)*4+2) = 0
100         linestyle(indgen((n)/4)*4+3) = 0
101
102         labels = intarr(n)
103         labels(indgen((n)/2)*2) = 1
104         labels(n/2) = 0
105
106         return
107      end
108      4: begin
109; trait continu gras pour 0
110         seuil = 1.e-6
111         thick=replicate(.1,  n_elements(level_z2d))
112         linestyle=[0]
113         rien=where(abs(level_z2d)/max(abs(level_z2d)) LT seuil)
114         if rien[0] NE -1 then thick[rien[0]] = 2
115      end
116      else: begin
117         ras = report('Le numero de labstyle demande n''existe pas')
118         stop
119      end
120   endcase
121   return
122end
Note: See TracBrowser for help on using the repository browser.