|Voronoi tiling art|
|Written by Mat|
|Wednesday, 30 September 2009 20:23|
These tessellations have all been generated by a very simple FreeBASIC program that I wrote.
I stumbled upon this algorithm while searching for a way to generate stochastic terrain heightmaps for a 3D strategy game, and realised that it could be made to produce pretty 2D pictures.
See: Voronoi diagram at Wikipedia.
The algorithm is as follows: start by placing a number of control points in random positions in the image, and assign each one a primary colour. Then for each pixel of the image, the colour of that pixel is set to the colour of its nearest control point, and the brightness of the pixel is set to the difference between the distance from the pixel to its nearest control point and the distance from the pixel to its next nearest control point.
Numerous variations on the algorithm exist: instead of using control points, other geometric objects can be used such as line segments or circles, which both result in curved edges. Also, instead of using Pythagoras to compute the distances, other methods can be used such as the Manhattan metric or the chessboard metric, and these result in more right angles.
It is possible to achieve a finer granularity in the spectrum of colours used, by mixing together two or more layers of tilings with various weights and numbers of control points.
|Last Updated on Thursday, 01 October 2009 20:12|