intro_graphics_windows
These are a set of routines (called WNLIB) that allows the application
programmer to easily set up plots of values in terms of real world
(engineering) coordinates in the graphics windows. In addition
to plotting points and drawing vectors, there are routines to draw
and label plot grids.
WNLIB routines use areas of the screen called view ports in which
to do their plotting functions. These view ports are defined in
terms of fractions of the full screen rather than pixel coordinates.
View port coordinates range from 0.0 to 1.0 in both X and Y
regardless of the actual screen dimensions in pixels. A view
port is established through a call to the routine 'wn_view(_c)'.
This should be the first WNLIB routine called by a program, and it
returns a window identification number that is used in subsequent
WNLIB routine calls.
The next stage in the construction of a WNLIB window is to establish
the real world (hereafter referred to simply as "world(_c)")
coordinates for the X and Y dimensions. This is accomplished by a
call to 'wn_world(_c)'. This routine uses the window ID from
'wn_view(_c)' and passes the desired world coordinates. The world
coordinates for a given view port can be changed at any time by
another call to 'wn_world(_c)' with new values.
At this point a completely defined window exists in memory that
can be referred to by its window ID. No actual drawing to the
window can be done until it is made the active window through
a call to 'wn_active(_c)'. Now points ('wn_point(_c)'), lines
('wn_vector(_c)'), boxes ('wn_box(_c)'), symbols ('wn_symbol(_c)'),
and text ('wn_text(_c)') can be drawn in the window. Many windows
can be defined at the same time, but all actual drawing is done in
the window that is currently active.
There are two WNLIB routines which set overall drawing
characteristics. 'wn_clip(_c)' can be called to clip all screen
output to the current window. 'wn_color(_c)' is used to set the
current drawing color.
There are also two routines for coordinate conversions within
a window. 'wn_getscrn(_c)' returns a physical screen coordinate
for a given world coordinate, and 'wn_getworld(_c)' returns a
world coordinate for a given physical screen coordinate. The
latter is particularly useful for letting users interact with
plot displays.
Finally, there is a set of routines which are designed to facilitate
labelled plots. 'wn_axis_grid(_c)' will draw an axis line in the
desired plane and draw both major and minor tic marks on it as
desired. 'wn_axis_label(_c)' goes a step further in that it will
also provide numeric labels for the major tic marks, and it will
display an axis title. 'wn_grid(_c)' takes this even further in that
it creates a window and provides a completely labelled plot grid.
A test program exists that allows the user to try out the various
WNLIB calls interactively. It is called WNLIB Test, and it
can presently be found on console page D110.
Another test program, called CLIB Peeker (D22), can be used to
look at internal WNLIB values in order to debug programming
problems.
Overall graphics screen manipulation routines:
'wn_read_background_format'
'wn_read_text_format'
'wn_screen_init(_c)'
'wn_screen_title'
'wn_select_screen(_c)'
'wn_set_background_format_c'
'wn_set_background_size_c'
Window creation/deletion/activation routines:
'wn_active(_c)'
'wn_view(_c)'
'wn_world(_c)'
'wn_delete_c'
'wn_delete_all_c'
'wn_set_scaling(_c)'
Drawing routines:
'wn_box(_c)'
'wn_circle(_c)'
'wn_circular_arc_c'
'wn_colored_text_c'
'wn_display_value(_c)'
'wn_erase(_c)'
'wn_external_colored_text_c'
'wn_external_display_value_c'
'wn_external_text(_c)'
'wn_point(_c)'
'wn_point_set'
'wn_polygon_c'
'wn_setsym(_c)'
'wn_set_plot_symbol(_c)'
'wn_symbol(_c)'
'wn_symbol_set'
'wn_text(_c)'
'wn_vector(_c)'
Drawing environment routines:
'wn_active(_c)'
'wn_background_color_c'
'wn_border_width_c'
'wn_clip(_c)'
'wn_color(_c)'
'wn_connect_points(_c)'
'wn_draw_mode(_c)'
'wn_fill_mode(_c)'
'wn_plot_fill(_c)'
'wn_setsym(_c)'
'wn_set_plot_symbol(_c)'
'wn_set_scaling(_c)'
'wn_text_attributes_c'
'wn_text_rotation(_c)'
'wn_text_scaling_c'
'wn_text_size(_c)'
'wn_vector_grain(_c)'
'wn_vector_width(_c)'
Coordinate handling routines:
'wn_getscrn(_c)'
'wn_getworld(_c)'
'wn_get_view_coords_c'
'wn_get_world_coords_c'
'wn_set_scaling(_c)'
'wn_text_scaling_c'
Plotting routines:
'wn_axis_grid(_c)'
'wn_axis_label(_c)'
'wn_connect_points(_c)'
'wn_external_colored_text_c'
'wn_external_display_value_c'
'wn_external_text(_c)'
'wn_grid(_c)'
'wn_plot_fill(_c)'
'wn_point(_c)'
'wn_point_set'
'wn_quick_grid'
'wn_setsym(_c)'
'wn_set_plot_symbol(_c)'
'wn_set_scaling(_c)'
'wn_symbol(_c)'
'wn_symbol_set'
Data manipulation routines:
'wn_data_extrema'
'wn_data_fft_c'
'wn_data_mean'
'wn_data_polyfit_c'
'wn_data_query'
'wn_data_recall'
'wn_data_save(_c)'
'wn_data_set_cut_c'
Cursor routines:
'wn_cursor_disable'
'wn_cursor_init(_c)'
'wn_cursor_init_pixel_c'
'wn_cursor_update'
'wn_cursor_update_pixel'
'wn_set_cursor_type_c'
Switch routines:
'wn_switch_create_c'
'wn_switch_delete_c'
'wn_switch_pressed'
'wn_switch_read_c'
'wn_switch_window_delete_c'
'wn_window_has_switch_c'
These functions require the following include files:
cbslib_h
Related functions:
wn_active(_c), wn_axis_grid(_c), wn_axis_label(_c),
wn_background_color_c, wn_blank_c, wn_border_width_c, wn_box(_c),
wn_circle(_c), wn_circular_arc_c, wn_clip(_c), wn_color(_c),
wn_colored_text_c, wn_connect_points(_c), wn_cursor_disable,
wn_cursor_init(_c), wn_cursor_init_pixel_c, wn_cursor_update,
wn_cursor_update_pixel, wn_data_extrema, wn_data_fft_c,
wn_data_mean, wn_data_polyfit_c, wn_data_query, wn_data_recall,
wn_data_save(_c), wn_data_set_cut_c, wn_delete_c, wn_delete_all_c,
wn_display_value(_c), wn_draw_mode(_c), wn_erase(_c),
wn_external_colored_text_c, wn_external_display_value_c,
wn_external_text(_c), wn_fill_mode(_c), wn_find_id(_c),
wn_find_list_c, wn_flush, wn_getscrn(_c), wn_getworld(_c),
wn_get_view_coords_c, wn_get_world_coords_c, wn_grid(_c),
wn_intersect_c, wn_occluded_c, wn_plot_fill(_c), wn_point(_c),
wn_point_set, wn_polygon_c, wn_query_setup, wn_quick_grid,
wn_read_background_format, wn_read_text_format, wn_screen_init(_c),
wn_screen_title, wn_select_screen(_c), wn_setsym(_c),
wn_set_background_format_c, wn_set_background_size_c,
wn_set_cursor_type_c, wn_set_plot_symbol(_c), wn_set_scaling(_c),
wn_switch_create_c, wn_switch_delete_c, wn_switch_disable_c,
wn_switch_enable_c, wn_switch_set_state_c, wn_switch_pressed,
wn_switch_read_c, wn_switch_relabel_c, wn_switch_window_delete_c,
wn_symbol(_c), wn_symbol_set, wn_text(_c), wn_text_attributes_c,
wn_text_rotation(_c), wn_text_coord_to_virtual_c, wn_text_scaling_c,
wn_text_size(_c), wn_vector(_c), wn_vector_grain(_c),
wn_vector_width(_c), wn_view(_c), wn_view_construct_c,
wn_view_pixel_c, wn_view_text_format_c, wn_wide_vector_c,
wn_window_has_switch_c, wn_world(_c)