Computational Geometry is the area of computer science and mathematics concerned with algorithms for solving geometric problems using finite computational representations. Its objects include points, lines, line segments, polygons, polyhedra, curves, surfaces and higher-dimensional geometric structures, while its problems include intersection detection, proximity queries, convex hull construction, triangulation, point location, range searching, visibility, motion planning and spatial partitioning. The discipline is distinguished from classical geometry by its emphasis on algorithmic efficiency, representation, numerical robustness and computational complexity.
A geometric problem that is straightforward to state mathematically can become difficult when millions of objects must be processed, when coordinates have finite precision or when degeneracies cause several geometric relationships to occur simultaneously. Computational Geometry therefore combines mathematical geometry with algorithms, data structures, complexity theory and numerical considerations. Its techniques underpin many systems involving spatial information, including computer graphics, geographic information systems, computer-aided design, robotics, computer vision and computational manufacturing.
Fundamental Computational Geometry concepts include orientation tests, incidence, adjacency, distance, intersection and containment. An orientation predicate determines whether ordered points form a clockwise or counter-clockwise configuration and is a basic building block for many planar algorithms. Segment-intersection algorithms determine whether geometric primitives intersect and, where appropriate, compute intersection coordinates. Convex hull algorithms find the smallest convex set containing a collection of points; classical approaches include Graham's scan, Jarvis's march and divide-and-conquer methods.
Triangulation partitions a polygon or point set into triangles, with Delaunay triangulation and Voronoi diagrams forming an especially important dual relationship. A Voronoi diagram divides space according to nearest sites, while its Delaunay triangulation connects sites whose Voronoi regions share boundaries. These structures support nearest-neighbour queries, mesh generation, spatial analysis and interpolation.
Algorithmic complexity is a central concern in Computational Geometry because geometric datasets can be extremely large. Algorithms are commonly analysed using asymptotic measures such as time and space complexity, with input size and geometric dimension affecting performance. Sweep-line algorithms process events in an ordered progression through space and can solve intersection and arrangement problems efficiently.
Divide-and-conquer techniques recursively partition geometric data, while spatial data structures such as k-d trees, range trees, R-trees and bounding-volume hierarchies accelerate queries by avoiding exhaustive comparisons. Arrangements represent subdivisions of space induced by geometric objects and are useful for visibility, motion planning and spatial decomposition. Output-sensitive algorithms adapt their complexity to the size of the result rather than only the input size. Dynamic computational geometry additionally considers how structures can be maintained as points, segments or other objects are inserted, deleted or modified.
Robustness is one of the most important practical issues in Computational Geometry. Mathematical predicates may be exact, but implementations frequently represent coordinates using finite-precision floating-point numbers. Small rounding errors can therefore change the sign of an orientation or incorrectly classify two objects as intersecting or disjoint. Such errors can propagate into data structures and cause invalid topology or crashes. Exact arithmetic, arbitrary-precision arithmetic, adaptive-precision predicates and carefully designed robust geometric predicates are methods used to reduce these problems.
Degeneracies occur when points are collinear, several sites are coincident, multiple boundaries intersect at a common location or a geometric object lies exactly on another boundary. Algorithms may use symbolic perturbation, explicit degeneracy handling or general-position assumptions. The distinction between an algorithm that is mathematically correct and an implementation that is numerically reliable is therefore particularly important in computational geometry.
Computational Geometry has major applications in Computer Graphics, where mesh construction, collision detection, visibility determination, surface processing and geometric modelling depend on geometric algorithms. In geographic information systems, polygons, boundaries, spatial indexes and proximity operations require point-in-polygon tests, intersection calculations and spatial searches. Robotics uses configuration-space geometry, collision checking and motion planning to determine whether a robot can move between states without intersecting obstacles.
Computer-aided design represents curves, surfaces and solids and requires operations such as Boolean combinations, intersection and offsetting. Computational manufacturing uses geometric representations to plan machining and fabrication processes. Computer vision uses geometric relationships for camera calibration, stereo reconstruction and multi-view reconstruction. Network and logistics systems can also use spatial optimisation and proximity structures. The same fundamental predicates and data structures can therefore appear in very different application domains.
Several geometric concepts are closely related but should not be treated as identical. Euclidean geometry studies mathematical properties of geometric objects, while Computational Geometry asks how such properties can be represented and computed efficiently. Computational topology focuses more specifically on topological properties and structures, although geometric and topological algorithms frequently overlap. Numerical geometry emphasises reliable computation involving geometric quantities and finite precision. Computer Graphics uses Computational Geometry extensively but additionally concerns image synthesis, rendering and visual appearance.
Geographic information systems use computational geometry as a foundation but add coordinate reference systems, databases, cartography and spatial analysis. Optimisation problems can involve geometry, such as finding shortest paths or minimum enclosing shapes, but optimisation is a broader mathematical discipline. These distinctions matter because a geometric algorithm may be theoretically optimal yet unsuitable for a particular application due to memory, precision, dynamic updates or implementation constraints.
Important specialised areas include kinetic computational geometry, which studies geometric structures whose input objects move; computational topology, which studies algorithmic topological structures; geometric data structures, which organise spatial information for efficient queries; and high-dimensional computational geometry, where dimensionality can dramatically increase complexity. Motion planning examines paths through geometric configuration spaces and is particularly important in robotics. Mesh generation constructs discrete approximations suitable for numerical simulation, with quality criteria involving element size, shape and conformity.
Collision detection often uses hierarchical bounding volumes to reject pairs of objects that cannot intersect before applying more expensive exact tests. Geometric optimisation includes problems involving distances, areas, volumes, shortest paths and enclosing structures. Many practical systems combine several techniques rather than applying one isolated algorithm, and their architecture is determined by the expected scale, update frequency, geometric dimension, numerical precision and query workload.
Computational Geometry is limited by both theoretical complexity and practical representation. Some geometric problems become computationally expensive as dimensionality increases, and exact solutions can be impractical when datasets are enormous or when the problem is dynamically changing. Approximation algorithms, heuristics, spatial indexing and parallel processing are therefore widely used. Coordinate systems can introduce their own complications, particularly when geographic data spans large areas or crosses coordinate-system boundaries.
Meshes can contain poorly shaped elements that degrade numerical simulations, while geometric simplification can remove features important to downstream analysis. Nevertheless, Computational Geometry provides a rigorous vocabulary and algorithmic toolkit for reasoning about spatial structure. Its lasting significance comes from the fact that physical and digital systems contain objects with position, extent, shape and relationships, making efficient and reliable geometric computation a fundamental requirement across many areas of computing and applied mathematics.