The CSU math graduate students have started writing a really fun monthly math magazine for the department, featuring stories, mathematical tidbits, and puzzles collected from the department and slid under all the professors’ doors each month. It’s been a joy to read, and every month they have a...
Some spatial use cases require identifying "narrow" or "skinny" polygons. A classic example is the process of cleaning polygonal coverages. Coverages (even clean ones) may contain narrow gaps between polygons which are unwanted. But they may also contain larger gaps which are valid. A geometric...
A previous post introduced a new algorithm in the JTS Topology Suite called RelateNG. It computes topological relationships between geometries using the Dimensionally-Extended 9 Intersection Model (DE-9IM) model. This algorithm is fundamental to a large proportion of spatial queries executed in...
The most fundamental and widely-used operations in the JTS Topology Suite are the ones that evaluate topological relationships between geometries. JTS implements the Dimensionally-Extended 9 Intersection Model (DE-9IM), as defined in the OGC Simple Features specification, in the RelateOp...
Preamble Gaussian Curvature (Wikipedia)One of the core concepts in Physics is so called metric tensor. This object encodes any kind of geometry. Combined genius of Gauß, Riemann and their contemporaries lead to such a great idea, probably one of the achievements of human quantitative...
This is a short report about a conference on Mathematics and Music. In presence. In the United States. With a vibrant community of researchers. Because in a crazy world it is more important than ever to hold on to beautiful things. In the conference logo, you can see a peach, a symbol of Atlanta,...
An important concept in spatial data modelling is that of a coverage. A coverage models a two-dimensional region in which every point has a value out of a range (which may be defined over one or a set of attributes). Coverages can be represented in both of the main physical spatial data models:...
The JTS Topology Suite recently gained the ability to compute concave hulls. The Concave Hull algorithm computes a polygon enclosing a set of points using a parameter to determine the "tightness". However, for polygonal inputs the computed concave hull is built only using the polygon vertices,...
Offset curves (also known as parallel curves) are an oft-requested feature in JTS. They are a natural extension to the concept of buffering, and are useful for things like placing labels along rivers. As far as I know there is no hard-and-fast definition for how an offset curve should be...
A (long) while ago I posted about "soon-to-be-released" JTS code for polygon triangulation using Ear Clipping. It turned out it was actually in the category of "never-to-be-released". However, later I worked with a student, Dan Tong, on a coding exercise sponsored by Facebook. We decided to...
This post contains some of the important notes which come in handy while working with vector-calculus. Vector Space A vector space is a collection of objects called vectors, which may be added together and multiplied/scaled by scalars. Scalars are often taken to be real numbers. \[\mathbf{x} =...
We often hear about youth lost in the world of alcohol and drugs, but less often of young people pleasantly immersed within geometry. And because geometry is a mathematical concept, and it is possible to investigate a bottle's curvature, as well as any liquids including alcohol which may be...
When I was younger I invested a lot of time into studying geometric algebra. Geometric algebra is a system where you can add, subtract and multiply oriented linear subspaces like lines and hyperplanes (cf. Grassmanian). These things are pretty important if you’re doing geometry, so it’s worth it...
Large voxel terrains may contain millions of polygons. Rendering such terrains at a uniform scale is both inefficient and can lead to aliasing of distant objects. As a result, many game engines choose to implement some form of level of detail based rendering, so that distant terrain is rendered...
Previously in this series we covered the basics of collision detection and discussed some different approaches to finding intersections in sets of boxes: Collision detection (part 1): Overview Collision detection (part 2): Box intersection Today, we’ll see how well this theory squares with...
Last time, we discussed collision detection in general and surveyed some techniques for narrow phase collision detection. In this article we will go into more detail on broad phase collision detection for closed axis-aligned boxes. This was a big problem in the 1970’s and early 1980’s in VLSI...
Collision, or intersection, detection is an important geometric operation with a large number of applications in graphics, CAD and virtual reality including: map overlay operations, constructive solid geometry, physics simulation, and label placement. It is common to make a distinction between...