[AIT logo]

Institut für Astronomie und Astrophysik

Abteilung Astronomie

Waldhäuser Str. 64, D-72076 Tübingen, Germany
[Uni logo]


TVCIRCLE Source code in tvcircle.pro

TVCIRCLE

Name
     TVCIRCLE
Purpose
     Draw circle(s) of specified radius at specified position(s)
Explanation
     If a position is not specified, and device has a cursor, then a circle
     is drawn at the current cursor position.
Calling Sequence
     TVCIRCLE, rad, x, y, color, [ /DATA, /FILL, _EXTRA  =  ]
Input Parameters
     RAD - radius of circle(s) to be drawn, positive numeric scalar
Optional Input Parameters
      X - x position for circle center, vector or scalar
      Y - y position for circle center, vector or scalar
               If X and Y are not specified, and the device has a cursor,
               then program will draw a circle at the current cursor position
      COLOR - intensity value(s) (0 - !D.N_COLORS) used to draw the circle(s)
               If COLOR is a scalar then all circles are drawn with the same
               color value.   Otherwise, the Nth circle is drawn with the
               Nth value of color.    Default = !P.COLOR.
Keyword Parameters
       /DATA - if this keyword is set and non-zero, then the circle width and
              X,Y position center are interpreted as being in DATA
              coordinates.   Note that data coordinates must be previously
              defined (with a PLOT or CONTOUR call).    TVCIRCLE will
              internally convert to device coordinates before drawing the
              circle, in order to maintain optimal smoothness.
       /FILL  - If set, fill the circle using POLYFILL
               Any keyword recognized by PLOTS (or POLYFILL if /FILL is set)
               is also recognized by TVCIRCLE.   In particular, the color,
               linestyle, and thickness of the circles are controlled by the
               COLOR, LINESTYLE, and THICK keywords.    If POLYFILL is set
               then available keywords are LINE_FILL and FILL_PATTERN.
Output Parameters
       None
Restrictions
       (1) TVCIRCLE does not check whether it writes off of the edge of the
           display
       (2) Some round-off error may occur when non-integral values are
           supplied for both the radius and the center coordinates
       (3) TVCIRCLE does not accept /NORMAL coordinates, only data coordinates
           (if /DATA is set) or device coordinates (the default)
       (4) TVCIRCLE always draws a circle --- even if /DATA is set, and the
           X and Y data scales are unequal.    (The X data scale is used to
           define the circle radius.)     If this is not the behaviour
           you want, then use TVELLIPSE instead.
Example
       (1) Draw circles of radius 9 pixels at the positions specified by
           X,Y vectors, using double thickness lines
           IDL> tvcircle, 9, x, y, THICK = 2
           Now fill in the circles using the LINE_FILL method
           IDL> tvcircle, 9, x, y, /FILL, /LINE_FILL
Procedure
           The method used is that of Michener's, modified to take into account
           the fact that IDL plots arrays faster than single points.   See
           "Fundamental of Interactive Computer Graphics" by Foley and Van Dam"
           p. 445 for the algorithm.
Revision History
           Original version   written by B. Pfarr  STX   10-88
           Major rewrite adapted from CIRCLE by Allyn Saroyan   LNLL
           Wayne Landsman   STX     Sep. 91
           Added DATA keyword   Wayne Landsman  HSTX    June 1993
           Added FILL keyword.  R. S. Hill, HSTX, 4-Nov-1993
           Always convert to device coords, add _EXTRA keyword, allow vector
           colors.   Wayne Landsman, HSTX,  May 1995
           Allow one to set COLOR = 0,   W. Landsman, HSTX, November 1995
           Check if data axes reversed.  P. Mangifico, W. Landsman  May 1996
           Converted to IDL V5.0   W. Landsman   September 1997

Last modified by pro2html on 2001 April 26 at 03:15 UTC

[Home Page] [Software, Documentation] [IDL Documentation] [Quick Reference] [Feedback]

Jörn Wilms (wilms@astro.uni-tuebingen.de)
Updated automatically