Skip to content

C# implementation of Fortunes Algorithm. Includes MonoGame example

License

Notifications You must be signed in to change notification settings

sesopenko/VoronoiLib

 
 

Repository files navigation

VoronoiLib

build workflow

C# implementation of Fortune's Algorithm, originally written by Logan Lembke and updated with nuget unit tests and package publishing to nuget. Unlike several implemenations of Fortune's Algorithm, this implementation guarantees O(n ln(n)) performance by way of a specialized Red Black Tree (Credit: Raymond Hill).

Dependencies

  • The library (VoronoiLib) is compiled for .net standard 1.1.

As such, projects should be able to be built on Linux or OS X.

Use

Install with dotnet CLI:

dotnet add package VoronoiLib

Create points, run algorithm.

var points = new List<FortuneSite> {
  new FortuneSite(100, 200),
  new FortuneSite(500, 200),
  new FortuneSite(300, 300)
}
//FortunesAlgorithm.Run(points, min x, min y, max x, max y)
LinkedList<VEdge> = FortunesAlgorithm.Run(points, 0, 0, 800, 800);

//VEdge.Start is a VPoint with location VEdge.Start.X and VEdge.End.Y
//VEdge.End is the ending point for the edge
//FortuneSite.Neighbors contains the site's neighbors in the Delaunay Triangulation

Issues and feature suggestions

See the issue manager of the repo to see work in progress and to suggest new features.

Implementation inspired by:

Feel free to use the code under MIT license. However, if you find the code useful, feel free to send mysel and/or Logan Lembke a message or make a link back to the repos.

About

C# implementation of Fortunes Algorithm. Includes MonoGame example

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%