Inspiration: this post on the JSTS group (with an image - good job on requirements!)

JTS implementation: in the lab

Code: Geometry geom = VariableWidthBuffer.buffer( line, 10, 80 );

Output:

## Friday, 21 August 2015

### SliceGraphs in JEQL

In the interests of increasing blog output, I'm going to experiment with using a terser style in posts where the content is mostly self-explanatory. Sort of an embedded microblog...

**Inspiration**: original Population Lines print , this plot from the Line Graphs in R blog post:

**Data**: SEDAC World Population grid, subsampled

**JEQL**script

**Plot**:

## Wednesday, 15 July 2015

### Even-distribution Random Point and Polygons in JTS

Recently I fixed the JTS KD-Tree implementation so that it works as advertised with a distance tolerance to provide point snapping. This gives a fast way to produce random point fields with even distribution (i.e. no points too close together).

First, generate a batch of random points using RandomPointsBuilder. As is well known, this produces a very "lumpy" distribution of points:

Using the Concave Hull algorithm available here with the same distance tolerance produces a random polygon with a very pleasing appearance:

First, generate a batch of random points using RandomPointsBuilder. As is well known, this produces a very "lumpy" distribution of points:

Then, put them in a KD-Tree using a snapping distance tolerance. Querying all points in the final tree produces a nice even distribution of points:

Using the Concave Hull algorithm available here with the same distance tolerance produces a random polygon with a very pleasing appearance:

I suspect that these kinds of polygons might be useful for generating stress tests for geometric algorithms.

UPDATE: Adding a bit of Bezier Smoothing produces an even cooler-looking polygon:

Labels:
algorithms,
computer art,
jts,
spatial index

Subscribe to:
Posts (Atom)