;------------------------------------------------------------ ;------------------------------------------------------------ ;------------------------------------------------------------ ;+ ; NAME:style ; ; PURPOSE:choisit la facon de tracer les isolignes ; ; CATEGORY:graphique ; ; CALLING SEQUENCE:style,labstyle,level_z2d,linestyle,thick ; ; INPUTS:labstyle: nombre auquel se refaire le styel de trace choisit ; level_z2d:vecteur contenant les valeures des isolignes a tracer ; ; KEYWORD PARAMETERS: ; ; OUTPUTS: ; linestyle:vecteur utilise pour definir le style des ; isocontours ; rq: pour memoire: ; Index Linestyle ; 0 Solid ; 1 Dotted ; 2 Dashed ; 3 Dash Dot ; 4 Dash Dot Dot Dot ; 5 Long Dashes ; thick:vecteur definissant l'epaisseur de l'isoligne ; ; COMMON BLOCKS: ; ; SIDE EFFECTS: ; ; RESTRICTIONS: ; ; EXAMPLE: ; ; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr) ; ;- ;------------------------------------------------------------ ;------------------------------------------------------------ ;------------------------------------------------------------ pro style,labstyle,level_z2d,linestyle,thick case labstyle of 0: begin ;serie: deux lignes continues fines, une ligne continue grasse thick=[1,1,2] linestyle=[0] return end 1: begin ;serie: avant le mileu des levels: tiret fin. apres trait continu fin. ; si le mileu est dessine il est en trait continu gras impair=n_elements(level_z2d)-2*fix(n_elements(level_z2d)/2) a=replicate(0,fix(n_elements(level_z2d)/2)) b=replicate(1,fix(n_elements(level_z2d)/2)) c=replicate(2,fix(n_elements(level_z2d)/2)) if impair then begin thick=[b,2,b] linestyle=[c,0,a] endif else begin thick=[0] linestyle=[c,a] endelse return end 2: begin ;serie: avant le seuil (definit en repondant a une question): tiret fin. ; apres trait continu fin. si le seuil est dessine il est en trait continu gras seuil=xquestion('Quelle est la limite tirets/trait continu? ','0') seuil = float(seuil) rien=where(level_z2d lt seuil,n) a=replicate(0,n_elements(level_z2d)-n) c=replicate(2,n) if seuil eq level_z2d(n) then begin thick=[replicate(1,n),2,replicate(1,n_elements(level_z2d)-1-n)] linestyle=[c,a] endif else begin thick=[0] linestyle=[c,a] endelse return end 3: begin n = n_elements(level_z2d) seuil = level_z2d(1+n/2) thick = intarr(n) thick(indgen((n)/4)*4) = 1 thick(indgen((n)/4)*4+1) = 1 thick(indgen((n)/4)*4+2) = 2 thick(indgen((n)/4)*4+3) = 1 linestyle = intarr(n) linestyle(indgen((n)/4)*4) = 3 linestyle(indgen((n)/4)*4+1) = 0 linestyle(indgen((n)/4)*4+2) = 0 linestyle(indgen((n)/4)*4+3) = 0 labels = intarr(n) labels(indgen((n)/2)*2) = 1 labels(n/2) = 0 return end 4: begin ; trait continu gras pour 0 seuil = 1.e-6 thick=replicate(.1, n_elements(level_z2d)) linestyle=[0] rien=where(abs(level_z2d)/max(abs(level_z2d)) LT seuil) if rien[0] NE -1 then thick[rien[0]] = 2 end else: begin ras = report('Le numero de labstyle demande n''existe pas') stop end endcase return end