A comprehensive collection of computational geometry algorithms and visualizations implemented as part of the Geometric Algorithms laboratory course.
This repository focuses on the implementation, analysis, and visualization of fundamental algorithms in computational geometry. The project includes performance benchmarks for various datasets, such as points on circles, within squares, or collinear sets, handling edge cases and floating-point precision issues.
-
Determinant Calculations: Implementation of
$2 \times 2$ and$3 \times 3$ determinants to determine point orientation relative to a line. - Classification: Categorizing points as Left, Right, or Collinear.
- Precision Analysis: Comparing results across different floating-point types.
- Jarvis March (Gift Wrapping algorithm).
- Graham Scan (using angular sorting).
- Benchmarking: Time complexity analysis and step-by-step construction visualization.
- Bentley-Ottmann Algorithm: A sweep-line approach to find all intersection points in a set of segments.
- Data Structures: Implementation of the Status Tree and Event Queue.
- Monotonicity Check: Identifying if a polygon is y-monotonic.
- Vertex Classification: Start, End, Split, Merge, and Regular vertices.
- Triangulation Algorithm: Efficient triangulation of monotonic polygons.
- Python 3.x
- Jupyter Notebook (for interactive demonstrations)
- Matplotlib (dynamic visualizations and plots)
- NumPy (numerical computations)
- Clone the repository:
git clone [https://github.com/juliet2112/Geometric-algorithms.git](https://github.com/juliet2112/Geometric-algorithms.git)