POLYGON_GRID Grid Points in a Polygon

POLYGON_GRID is a C library which generates a grid of points over the interior of a polygon in 2D.

The program relies on a simple idea in which the "vertex centroid" (average of the vertices) is computed, allowing the polygon to be triangulated. Each triangle can then easily be gridded. The collection of triangular grids joins up to form a grid over the polygon, although the spacing of the the grid points will vary from triangle to triangle.

The program really only works properly for convex polygons. If the polygon is not convex, then the vertex centroid need not lie inside the polygon, consequently the grid points may also seem misaligned.

Languages:

POLYGON_GRID is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version and a Python version.

Related Data and Programs:

BALL_GRID, a C library which computes a grid of points over the interior of a ball in 3D.

CIRCLE_ARC_GRID, a C program which computes points equally spaced along a circular arc;

CUBE_GRID, a C library which computes a grid of points over the interior of a cube in 3D.

DISK_GRID, a C library which computes a grid of points over the interior of a disk in 2D.

ELLIPSE_GRID, a C library which computes a grid of points over the interior of an ellipse in 2D.

ELLIPSOID_GRID, a C library which computes a grid of points over the interior of an ellipsoid in 3D.

HYPERCUBE_GRID, a C library which computes a grid of points over the interior of a hypercube in M dimensions.

LINE_GRID, a C library which computes a grid of points over the interior of a line segment in 1D.

PYRAMID_GRID, a C library which computes a grid of points over the interior of the unit pyramid in 3D;

SIMPLEX_GRID, a C library which generates a grid of points over the interior of a simplex in M dimensions.

SPHERE_FIBONACCI_GRID, a C library which computes a grid of points using the Fibonacci spiral over the surface of a sphere in 3D.

SPHERE_GRID, a C library which provides a number of ways of generating grids of points, or of points and lines, or of points and lines and faces, on the surface of the unit sphere in 3D.

SPHERE_LLQ_GRID, a C library which uses longitudes and latitudes to create grids of points, lines, and quadrilaterals on the surface of the unit sphere in 3D.

SPHERE_LLT_GRID, a C library which uses longitudes and latitudes to create grids of points, lines, and triangles on the surface of the unit sphere in 3D.

SQUARE_GRID, a C library which computes a grid of points over the interior of a square in 2D.

TETRAHEDRON_GRID, a C library which computes a grid of points over the interior of a tetrahedron in 3D.

TRIANGLE_GRID, a C library which computes a grid of points over the interior of a triangle in 2D.

WEDGE_GRID, a C library which computes a grid of points over the interior of the unit wedge in 3D.

Examples and Tests:

ELL is an L-shaped (non-convex!) polygon for which the program output doesn't look too bad, although the grid is degenerate.

TRIANGLE is a triangular polygon.

List of Routines:

• POLYGON_GRID_COUNT counts the grid points inside a polygon.
• POLYGON_GRID_DISPLAY displays grid points inside a polygon.
• POLYGON_GRID_POINTS computes points on a polygonal grid.
• R8MAT_TRANSPOSE_PRINT prints an R8MAT, transposed.
• R8MAT_TRANSPOSE_PRINT_SOME prints some of an R8MAT, transposed.
• R8MAT_WRITE writes an R8MAT file.
• TIMESTAMP prints the current YMDHMS date as a time stamp.

You can go up one level to the C source codes.

Last revised on 11 May 2015.