<number id="depth" type="slider" arg="-max-depth %"
_label="Complexity" _low-label="Shallow" _high-label="Deep"
low="1000" high="100000" default="30000"/>
-
</vgroup>
<vgroup>
+
+ <select id="mode">
+ <option id="random" _label="Delaunay or voronoi"/>
+ <option _label="Delaunay" arg-set="-mode delaunay"/>
+ <option _label="Voronoi" arg-set="-mode voronoi"/>
+ </select>
+
<xscreensaver-image />
<boolean id="fill" _label="Fill screen" arg-unset="-no-fill-screen"/>
</hgroup>
<_description>
-Converts an image to triangles using Delaunay tessellation, and
-animates the result at various depths.
+Converts an image to triangles using Delaunay tessellation, or to
+polygons using Voronoi tesselation, and animates the result at
+various depths.
-More triangles are allocated to visually complex parts of the image.
+More polygons are allocated to visually complex parts of the image.
This is accomplished by first computing the first derivative of the
image: the distance between each pixel and its neighbors (which is
-essentially edge detection or embossing). Then the Delaunay control
-points are chosen by selecting those pixels whose distance value is
-above a certain threshold: those are the pixels that have the largest
-change in color/brightness.
+essentially edge detection or embossing). Then the Delaunay or
+Voronoi control points are chosen by selecting those pixels whose
+distance value is above a certain threshold: those are the pixels that
+have the largest change in color/brightness.
https://en.wikipedia.org/wiki/Delaunay_triangulation
+https://en.wikipedia.org/wiki/Voronoi_diagram
+https://en.wikipedia.org/wiki/Tessellation
Written by Jamie Zawinski; 2014.
</_description>