Viewing contents of file '../idllib/jhuapls1r/usr/align.pro'
;-------------------------------------------------------------
;+
; NAME:
; ALIGN
; PURPOSE:
; Vector text justification (positioning).
; CATEGORY:
; CALLING SEQUENCE:
; align, x,y,txt
; INPUTS:
; x,y = Reference point. in
; txt = Text string.
; KEYWORD PARAMETERS:
; Keywords:
; CHARSIZE=csz Character size.
; AX=ax Alignment in X (fraction).
; AY=ax Alignment in Y (fraction).
; AX=0, AY=0 is lower left corner of text.
; AX=1, AY=1 is upper right corner of text.
; /DEVICE Means work in device coordinates.
; /DATA Means work in data coordinates.
; /NORMAL Means work in normalized coordinates.
; XOUT=xx Output x position.
; YOUT=yy Output x position.
; xyouts,xx,yy,txt,charsize=csz.
; OUTPUTS:
; COMMON BLOCKS:
; NOTES:
; Notes: Currently works only for horizontal text.
; MODIFICATION HISTORY:
; R. Sterner, 1994 Apr 4.
;
; Copyright (C) 1994, Johns Hopkins University/Applied Physics Laboratory
; This software may be used, copied, or redistributed as long as it is not
; sold and this copyright notice is reproduced on each copy made. This
; routine is provided as is without any express or implied warranties
; whatsoever. Other limitations apply as described in the file disclaimer.txt.
;-
;-------------------------------------------------------------
pro align, x, y, txt, charsize=csz, ax=ax, ay=ay, xout=xx, $
yout=yy, device=dev, data=dat, normal=nor, help=hlp
if (n_params(0) lt 3) or keyword_set(hlp) then begin
print,' Vector text justification (positioning).'
print,' align, x,y,txt'
print,' x,y = Reference point. in'
print,' txt = Text string.'
print,' Keywords:'
print,' CHARSIZE=csz Character size.'
print,' AX=ax Alignment in X (fraction).'
print,' AY=ax Alignment in Y (fraction).'
print,' AX=0, AY=0 is lower left corner of text.'
print,' AX=1, AY=1 is upper right corner of text.'
print,' /DEVICE Means work in device coordinates.'
print,' /DATA Means work in data coordinates.'
print,' /NORMAL Means work in normalized coordinates.'
print,' XOUT=xx Output x position.'
print,' YOUT=yy Output x position.'
print,' xyouts,xx,yy,txt,charsize=csz.'
print,' Notes: Currently works only for horizontal text.'
return
endif
dy = 0.75*csz*!d.y_ch_size/(!d.y_size+0.) ; Norm dy.
xyouts,/norm,-10,-10,txt,charsize=csz, width=dx ; Norm dx.
if keyword_set(nor) then begin
xx = x - ax*dx
yy = y - ay*dy
return
endif
if keyword_set(dev) then begin
xx = x - ax*dx*!d.x_size
yy = y - ay*dy*!d.y_size
return
endif
tmp = convert_coord(x,y,/data,/to_norm)
tx = tmp(0)
ty = tmp(1)
tx2 = tx - ax*dx
ty2 = ty - ay*dy
tmp = convert_coord(tx2,ty2,/norm,/to_data)
xx = tmp(0)
yy = tmp(1)
return
end