[2] | 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 | ;------------------------------------------------------------ |
---|
| 45 | pro 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 |
---|
[42] | 111 | thick=replicate(.5, n_elements(level_z2d)) |
---|
[2] | 112 | linestyle=[0] |
---|
| 113 | rien=where(abs(level_z2d)/max(abs(level_z2d)) LT seuil) |
---|
[42] | 114 | if rien[0] NE -1 then thick[rien[0]] = 3 |
---|
[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 |
---|
| 122 | end |
---|