Previous: hlpuic Up: ../plot79_h.html Next: hzncv


HZNBO

       SUBROUTINE  HZNBO (TOP, BOTTOM, MAXHZN, X, Y, P, N1, N2,
      X                   MAXXYP, IDIR, PL2)
 C$    (Bounds)
 C$    This routine updates and plots the top and bottom  horizons
 C$    for a hidden-line  view.  Unlike VISBO,  which maintains  a
 C$    variable  spaced   horizon   with  a   complicated   update
 C$    algorithm,  HZNBO   divides  the   horizon  into   "MAXHZN"
 C$    equally-spaced vertical  strips,  so that  updating  merely
 C$    involves a quick determination of which part of the horizon
 C$    is involved.  The horizon arrays must be initialized before
 C$    the hidden-line process  begins, using  large negative  and
 C$    positive  values   for  the   top  and   bottom   horizons,
 C$    respectively.  The arguments are:
 C$
 C$    TOP(MAXHZN)...........Top horizon array.
 C$    BOTTOM(MAXHZN)........Bottom horizon array.
 C$    MAXHZN................Number of points in horizon
 C$                          (e.g. 200..1000).
 C$    X(MAXXYP),Y(MAXXYP)...Coordinates on function curve.
 C$    P(MAXXYP).............Visibility of function points.
 C$    N1,N2.................Range of indices in function arrays
 C$                          X(*), Y(*), P(*).  These may be in
 C$                          either order.
 C$    MAXXYP................Maximum dimension of X(*), Y(*), P(*).
 C$    IDIR..................Pen direction flag.  It should be set
 C$                          to +1 before the first call and  left
 C$                          unchanged  thereafter,  since  it  is
 C$                          updated  internally   each   time   a
 C$                          visible sweep is made.
 C$    PL2...................2-D pen movement routine, usually
 C$                          PL2CA.
 C$
 C$    In order for this routine  to work properly, the number  of
 C$    points on the  horizon must  be rather large,  so that  the
 C$    histogramming provides a satisfactory representation of the
 C$    surface.  Obviously, the number of horizon points need  not
 C$    exceed the plotter resolution.  In practice, about 100/inch
 C$    (40/cm) will often give acceptable results.
 C$
 C$    (19-MAR-83)