• Stars
    star
    128
  • Rank 279,438 (Top 6 %)
  • Language
    Java
  • Created over 12 years ago
  • Updated over 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Computational geometry algorithms in Java

Computational geometry in Java

The project contains both implementations and visualization tools for basic computational geometry algorithms in two-dimensional space. These algorithms are implemented in Java programming language and are visualized using the Swing libraries.

List of implemented algorithms:

Two segments intersection

  • Algorithm using the cross product - O(1)

Any segments intersection

  • Sweeping line algorithm - O(n路lg(n))
  • Naive algorithm - O(n2)

Convex hull construction

  • Graham's scan - O(n路lg(n))
  • Jarvis' march - O(n路h)

Closest points pair

  • Divide&Conquer - O(n路lg(n))
  • Naive algorithm - O(n2)

Polygon triangulation

  • "Ear clipping" (Van Gogh) algorithm (improved) - O(n2)
  • "Ear clipping" (Van Gogh) algorithm (naive) - O(n3)
  • Primitive Divide&Conquer algorithm - O(n4)

Point set Delaunay triangulation

  • Randomized incremental construction - O(n路lg(n))
  • Brute force edge flipping algorithm - O(n3)
  • 3D Terrain construction via VRML

Halfplanes intersection

  • Incremental algorithm - O(n2)

Voronoi diagram

  • Construction via Halfplanes intersection - O(n3)



Reference books:

  • "Introduction to Algorithms" by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
  • "Computational Geometry: Algorithms and Applications" by Mark de Berg, Otfried Cheong, Marc van Kreveld and Mark Overmars
  • "The Algorithm Design Manual" by Steven S. Skiena
  • "Programming Challenges" by Steven S. Skiena and Miguel Revilla
  • "Axioms and hulls" by Donald E. Knuth