GRASS GIS 7 Programmer's Manual
7.9.dev(2021)-e5379bbd7
|
Vector library - nearest, adjust, parallel lines. More...
#include <stdlib.h>
#include <math.h>
#include <grass/vector.h>
#include <grass/glocale.h>
#include "dgraph.h"
Go to the source code of this file.
Macros | |
#define | LENGTH(DX, DY) (sqrt((DX*DX)+(DY*DY))) |
#define | MIN(X, Y) ((X<Y)?X:Y) |
#define | MAX(X, Y) ((X>Y)?X:Y) |
#define | PI M_PI |
#define | RIGHT_SIDE 1 |
#define | LEFT_SIDE -1 |
#define | LOOPED_LINE 1 |
#define | NON_LOOPED_LINE 0 |
Functions | |
void | Vect_line_buffer2 (const struct line_pnts *Points, double da, double db, double dalpha, int round, int caps, double tol, struct line_pnts **oPoints, struct line_pnts ***iPoints, int *inner_count) |
Creates buffer around line. More... | |
void | Vect_area_buffer2 (const struct Map_info *Map, int area, double da, double db, double dalpha, int round, int caps, double tol, struct line_pnts **oPoints, struct line_pnts ***iPoints, int *inner_count) |
Creates buffer around area. More... | |
void | Vect_point_buffer2 (double px, double py, double da, double db, double dalpha, int round, double tol, struct line_pnts **oPoints) |
Creates buffer around the point (px, py). More... | |
void | Vect_line_parallel2 (struct line_pnts *InPoints, double da, double db, double dalpha, int side, int round, double tol, struct line_pnts *OutPoints) |
Vector library - nearest, adjust, parallel lines.
Higher level functions for reading/writing/manipulating vectors.
(C) 2001-2009 by the GRASS Development Team
This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.
Definition in file buffer2.c.
#define PI M_PI |
Definition at line 33 of file buffer2.c.
Referenced by Vect_point_buffer2().
void Vect_area_buffer2 | ( | const struct Map_info * | Map, |
int | area, | ||
double | da, | ||
double | db, | ||
double | dalpha, | ||
int | round, | ||
int | caps, | ||
double | tol, | ||
struct line_pnts ** | oPoints, | ||
struct line_pnts *** | iPoints, | ||
int * | inner_count | ||
) |
Creates buffer around area.
Map | vector map | |
area | area id | |
da | distance along major axis | |
db | distance along minor axis | |
dalpha | angle between 0x and major axis | |
round | make corners round | |
caps | add caps at line ends | |
tol | maximum distance between theoretical arc and output segments | |
[out] | oPoints | output polygon outer border (ccw order) |
[out] | inner_count | number of holes |
[out] | iPoints | array of output polygon's holes (cw order) |
void Vect_line_buffer2 | ( | const struct line_pnts * | Points, |
double | da, | ||
double | db, | ||
double | dalpha, | ||
int | round, | ||
int | caps, | ||
double | tol, | ||
struct line_pnts ** | oPoints, | ||
struct line_pnts *** | iPoints, | ||
int * | inner_count | ||
) |
Creates buffer around line.
See also Vect_line_buffer().
Shape of buffer endings is managed by two parameters - round and cap. Setting round=1, cap=1 gives "classical" buffer, while round=0, cap=1 gives square end, but cap=0 – butt. See v.buffer manual or SVG stroke-linecap for examples.
To get "classical" buffer, set db equal to da, and dalpha to 0.
Points | input line geometry | |
da | distance along major axis | |
db | distance along minor axis | |
dalpha | angle between 0x and major axis | |
round | make corners round (0 - square, not 0 - round) | |
caps | add caps at line ends (0 - butt, not 0 - caps) | |
tol | maximum distance between theoretical arc and output segments | |
[out] | oPoints | output polygon outer border (ccw order) |
[out] | iPoints | array of output polygon's holes (cw order) |
[out] | inner_count | number of holes |
void Vect_line_parallel2 | ( | struct line_pnts * | InPoints, |
double | da, | ||
double | db, | ||
double | dalpha, | ||
int | side, | ||
int | round, | ||
double | tol, | ||
struct line_pnts * | OutPoints | ||
) |
Definition at line 1188 of file buffer2.c.
References G_debug(), and line_pnts::n_points.
void Vect_point_buffer2 | ( | double | px, |
double | py, | ||
double | da, | ||
double | db, | ||
double | dalpha, | ||
int | round, | ||
double | tol, | ||
struct line_pnts ** | oPoints | ||
) |
Creates buffer around the point (px, py).
px | input point x-coordinate | |
py | input point y-coordinate | |
da | distance along major axis | |
db | distance along minor axis | |
dalpha | angle between 0x and major axis | |
round | make corners round | |
tol | maximum distance between theoretical arc and output segments | |
[out] | oPoints | output polygon outer border (ccw order) |
Definition at line 1135 of file buffer2.c.
References G_debug(), PI, and Vect_new_line_struct().