HELP DISPLAY_FLOW                                   David Young
                                                    April 1994

LIB * DISPLAY_FLOW uses the facilities of * RC_GRAPHIC to display arrays
of optic flow vectors.

display_flow(u, v, scale, skip, win) -> win
        This plots each flow-vector as a dot at the starting position
        and a line extending from it indicating the speed and direction
        of flow.

        u and v are arrays containing the x and y components of the flow
        vectors respectively.

        The length of each vector is multiplied by scale before
        plotting. The basic scale of the plot (the number of screen
        pixels for each image pixel) can be set by assigning to
        rci_show_scale (see *rci_show). The scale argument affects the
        lengths of the vectors relative to the distance between image
        pixels.

        A vector is plotted for every skip'th pixel in the x and y
        directions, leaving an even margin round the edge if necessary.

        win may be false, in which case a new window is created and
        returned, or it may be an existing window (perhaps returned by a
        previous call to display_flow), in which case the plot is done
        in the window given, and this window is returned.

display_flowproc(proc, bounds, scale, skip, win) -> win
        This is similar to display_flow, except that proc must be a
        procedure of 2 arguments which returns the components of the
        flow vector when given the coordinates of a position:

            proc(x, y) -> (u, v)

        where u and v are now real numbers.

        bounds should be a list in boundslist format giving the size of
        the display to use, or an array. If it is an array, its bounds
        will be used for the size of the display, and the image will be
        used as a background.


--- $popvision/help/display_flow
--- Copyright University of Sussex 1994. All rights reserved.
