#include "gis.h"
#include <stdlib.h>
Include dependency graph for plot.c:
Go to the source code of this file.
Defines | |
#define | POINT struct point |
#define | X(e) (left + xconv * ((e) - window.west)) |
#define | Y(n) (top + yconv * (window.north - (n))) |
#define | EAST(x) (window.west + ((x)-left)/xconv) |
#define | NORTH(y) (window.north - ((y)-top)/yconv) |
#define | OK 0 |
#define | TOO_FEW_EDGES 2 |
#define | NO_MEMORY 1 |
#define | OUT_OF_SYNC -1 |
Functions | |
double | G_adjust_easting () |
returns east larger than west | |
int | G_setup_plot (double t, double b, double l, double r, int(*Move)(), int(*Cont)()) |
initialize plotting routines | |
int | G_plot_where_xy (double east, double north, int *x, int *y) |
east,north to x,y | |
int | G_plot_where_en (x, y, double *east, double *north) |
x,y to east,north | |
int | G_plot_point (double east, double north) |
int | G_plot_line (double east1, double north1, double east2, double north2) |
plot line between latlon coordinates | |
int | G_plot_line2 (double east1, double north1, double east2, double north2) |
int | G_plot_polygon (double *x, double *y, int n) |
plot filled polygon with n vertices | |
int | G_plot_area (double **xs, double **ys, int *rpnts, int rings) |
plot multiple polygons | |
int | G_plot_fx (double(*f)(), double east1, double east2) |
plot f(east1) to f(east2) |
#define EAST | ( | x | ) | (window.west + ((x)-left)/xconv) |
#define NO_MEMORY 1 |
#define NORTH | ( | y | ) | (window.north - ((y)-top)/yconv) |
#define OK 0 |
#define OUT_OF_SYNC -1 |
#define POINT struct point |
#define TOO_FEW_EDGES 2 |
#define X | ( | e | ) | (left + xconv * ((e) - window.west)) |
Definition at line 132 of file plot.c.
Referenced by G_plot_area(), G_plot_polygon(), and G_plot_where_xy().
#define Y | ( | n | ) | (top + yconv * (window.north - (n))) |
Definition at line 133 of file plot.c.
Referenced by G_plot_area(), G_plot_polygon(), and G_plot_where_xy().
double G_adjust_easting | ( | ) |
returns east larger than west
If the region projection is PROJECTION_LL, then this routine returns an equivalent east that is larger, but no more than 360 degrees larger, than the coordinate for the western edge of the region. Otherwise no adjustment is made and the original east is returned.
east | ||
region |
Referenced by G_easting_to_col(), G_plot_where_en(), G_plot_where_xy(), and G_site_in_region().
int G_plot_area | ( | double ** | xs, | |
double ** | ys, | |||
int * | rpnts, | |||
int | rings | |||
) |
plot multiple polygons
Like G_plot_polygon, except it takes a set of polygons, each with {npts[i]} vertices, where the number of polygons is specified with the rings argument. It is especially useful for plotting vector areas with interior islands.
xs | ||
ys | ||
npts | ||
rings |
Definition at line 563 of file plot.c.
References G_calloc(), NO_MEMORY, NULL, TOO_FEW_EDGES, X, and Y.
int G_plot_fx | ( | double(*)() | f, | |
double | east1, | |||
double | east2 | |||
) |
plot f(east1) to f(east2)
The function f(east) is plotted from east1 to east2. The function f(east) must return the map northing coordinate associated with east.
~ |
Definition at line 819 of file plot.c.
References G_plot_line().
int G_plot_line | ( | double | east1, | |
double | north1, | |||
double | east2, | |||
double | north2 | |||
) |
plot line between latlon coordinates
A line from east1,north1 to east2,north2 is plotted in output x,y coordinates (e.g. pixels for graphics.) This routine handles global wrap-around for latitude-longitude databases.
east1 | ||
north1 | ||
east2 | ||
north2 |
Definition at line 218 of file plot.c.
Referenced by G_plot_fx(), and G_plot_icon().
int G_plot_line2 | ( | double | east1, | |
double | north1, | |||
double | east2, | |||
double | north2 | |||
) |
int G_plot_point | ( | double | east, | |
double | north | |||
) |
int G_plot_polygon | ( | double * | x, | |
double * | y, | |||
int | n | |||
) |
plot filled polygon with n vertices
The polygon, described by the n vertices east,north, is plotted in the output x,y space as a filled polygon.
east | ||
north | ||
n |
Definition at line 425 of file plot.c.
References NO_MEMORY, OK, OUT_OF_SYNC, POINT, TOO_FEW_EDGES, X, and Y.
int G_plot_where_en | ( | x | , | |
y | , | |||
double * | east, | |||
double * | north | |||
) |
x,y to east,north
The pixel coordinates x,y are converted to map coordinates east,north.
x | ||
y | ||
east | ||
north |
Definition at line 176 of file plot.c.
References EAST, G_adjust_easting(), and NORTH.
int G_plot_where_xy | ( | double | east, | |
double | north, | |||
int * | x, | |||
int * | y | |||
) |
east,north to x,y
The map coordinates east,north are converted to pixel coordinates x,y.
east | ||
north | ||
x | ||
y |
Definition at line 152 of file plot.c.
References G_adjust_easting(), X, and Y.
Referenced by G_plot_point().
int G_setup_plot | ( | double | t, | |
double | b, | |||
double | l, | |||
double | r, | |||
int(*)() | Move, | |||
int(*)() | Cont | |||
) |
initialize plotting routines
Initializes the plotting capability. This routine must be called once before calling the G_plot_*(~) routines described below. The parameters t, b, l, r are the top, bottom, left, and right of the output x,y coordinate space. They are not integers, but doubles to allow for subpixel registration of the input and output coordinate spaces. The input coordinate space is assumed to be the current GRASS region, and the routines supports both planimetric and latitude- longitude coordinate systems. Move and Cont are subroutines that will draw lines in x,y space. They will be called as follows: Move(x, y) move to x,y (no draw) Cont(x, y) draw from previous position to x,y. Cont(~) is responsible for clipping
~ |
Definition at line 100 of file plot.c.
References G_get_set_window().