Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  



























Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Combinatorial computational geometry  



1.1  Problem classes  



1.1.1  Static problem  





1.1.2  Geometric query problems  





1.1.3  Dynamic problems  





1.1.4  Variations  









2 Numerical computational geometry  





3 List of algorithms  





4 See also  





5 References  





6 Further reading  



6.1  Journals  



6.1.1  Combinatorial/algorithmic computational geometry  









7 External links  














Computational geometry






العربية
Català
Чӑвашла
Deutsch
Ελληνικά
Español
Euskara
فارسی
Français

Bahasa Indonesia
Italiano
עברית

Nederlands

Polski
Português
Русский
Slovenščina
کوردی
Suomi
Türkçe
Українська
اردو
Tiếng Vit


 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 




In other projects  



Wikimedia Commons
Wikiversity
 

















Listen to this article

From Wikipedia, the free encyclopedia
 


Computational geometry is a branch of computer science devoted to the study of algorithms which can be stated in terms of geometry. Some purely geometrical problems arise out of the study of computational geometric algorithms, and such problems are also considered to be part of computational geometry. While modern computational geometry is a recent development, it is one of the oldest fields of computing with a history stretching back to antiquity.

Computational complexity is central to computational geometry, with great practical significance if algorithms are used on very large datasets containing tens or hundreds of millions of points. For such sets, the difference between O(n2) and O(n log n) may be the difference between days and seconds of computation.

The main impetus for the development of computational geometry as a discipline was progress in computer graphics and computer-aided design and manufacturing (CAD/CAM), but many problems in computational geometry are classical in nature, and may come from mathematical visualization.

Other important applications of computational geometry include robotics (motion planning and visibility problems), geographic information systems (GIS) (geometrical location and search, route planning), integrated circuit design (IC geometry design and verification), computer-aided engineering (CAE) (mesh generation), and computer vision (3D reconstruction).

The main branches of computational geometry are:

Although most algorithms of computational geometry have been developed (and are being developed) for electronic computers, some algorithms were developed for unconventional computers (e.g. optical computers [3])

Combinatorial computational geometry[edit]

The primary goal of research in combinatorial computational geometry is to develop efficient algorithms and data structures for solving problems stated in terms of basic geometrical objects: points, line segments, polygons, polyhedra, etc.

Some of these problems seem so simple that they were not regarded as problems at all until the advent of computers. Consider, for example, the Closest pair problem:

One could compute the distances between all the pairs of points, of which there are n(n-1)/2, then pick the pair with the smallest distance. This brute-force algorithm takes O(n2) time; i.e. its execution time is proportional to the square of the number of points. A classic result in computational geometry was the formulation of an algorithm that takes O(n log n). Randomized algorithms that take O(n) expected time,[4] as well as a deterministic algorithm that takes O(n log log n) time,[5] have also been discovered.

Problem classes[edit]

The core problems in computational geometry may be classified in different ways, according to various criteria. The following general classes may be distinguished.

Static problem[edit]

In the problems of this category, some input is given and the corresponding output needs to be constructed or found. Some fundamental problems of this type are:

The computational complexity for this class of problems is estimated by the time and space (computer memory) required to solve a given problem instance.

Geometric query problems [edit]

Ingeometric query problems, commonly known as geometric search problems, the input consists of two parts: the search space part and the query part, which varies over the problem instances. The search space typically needs to be preprocessed, in a way that multiple queries can be answered efficiently.

Some fundamental geometric query problems are:

If the search space is fixed, the computational complexity for this class of problems is usually estimated by:

For the case when the search space is allowed to vary, see "Dynamic problems".

Dynamic problems[edit]

Yet another major class is the dynamic problems, in which the goal is to find an efficient algorithm for finding a solution repeatedly after each incremental modification of the input data (addition or deletion input geometric elements). Algorithms for problems of this type typically involve dynamic data structures. Any of the computational geometric problems may be converted into a dynamic one, at the cost of increased processing time. For example, the range searching problem may be converted into the dynamic range searching problem by providing for addition and/or deletion of the points. The dynamic convex hull problem is to keep track of the convex hull, e.g., for the dynamically changing set of points, i.e., while the input points are inserted or deleted.

The computational complexity for this class of problems is estimated by:

Variations[edit]

Some problems may be treated as belonging to either of the categories, depending on the context. For example, consider the following problem.

In many applications this problem is treated as a single-shot one, i.e., belonging to the first class. For example, in many applications of computer graphics a common problem is to find which area on the screen is clicked by a pointer. However, in some applications, the polygon in question is invariant, while the point represents a query. For example, the input polygon may represent a border of a country and a point is a position of an aircraft, and the problem is to determine whether the aircraft violated the border. Finally, in the previously mentioned example of computer graphics, in CAD applications the changing input data are often stored in dynamic data structures, which may be exploited to speed-up the point-in-polygon queries.

In some contexts of query problems there are reasonable expectations on the sequence of the queries, which may be exploited either for efficient data structures or for tighter computational complexity estimates. For example, in some cases it is important to know the worst case for the total time for the whole sequence of N queries, rather than for a single query. See also "amortized analysis".

Numerical computational geometry[edit]

This branch is also known as geometric modelling and computer-aided geometric design (CAGD).

Core problems are curve and surface modelling and representation.

The most important instruments here are parametric curves and parametric surfaces, such as Bézier curves, spline curves and surfaces. An important non-parametric approach is the level-set method.

Application areas of computational geometry include shipbuilding, aircraft, and automotive industries.

List of algorithms[edit]

  • Closest pair problem: find the pair of points (from a set of points) with the smallest distance between them
  • Collision detection algorithms: check for the collision or intersection of two given solids
  • Cone algorithm: identify surface points
  • Convex hull algorithms: determining the convex hull of a set of points
  • Euclidean distance transform: computes the distance between every point in a grid and a discrete collection of points.
  • Geometric hashing: a method for efficiently finding two-dimensional objects represented by discrete points that have undergone an affine transformation
  • Gilbert–Johnson–Keerthi distance algorithm: determining the smallest distance between two convex shapes.
  • Jump-and-Walk algorithm: an algorithm for point location in triangulations
  • Laplacian smoothing: an algorithm to smooth a polygonal mesh
  • Line segment intersection: finding whether lines intersect, usually with a sweep line algorithm
  • Minimum bounding box algorithms: find the oriented minimum bounding box enclosing a set of points
  • Nearest neighbor search: find the nearest point or points to a query point
  • Nesting algorithm: make the most efficient use of material or space
  • Point in polygon algorithms: tests whether a given point lies within a given polygon
  • Point set registration algorithms: finds the transformation between two point sets to optimally align them.
  • Rotating calipers: determine all antipodal pairs of points and vertices on a convex polygonorconvex hull.
  • Shoelace algorithm: determine the area of a polygon whose vertices are described by ordered pairs in the plane
  • Triangulation
  • See also[edit]

    References[edit]

    1. ^ Franco P. Preparata and Michael Ian Shamos (1985). Computational Geometry - An Introduction. Springer-Verlag. ISBN 0-387-96131-3. 1st edition; 2nd printing, corrected and expanded, 1988.
  • ^ A.R. Forrest, "Computational geometry", Proc. Royal Society London, 321, series 4, 187-195 (1971)
  • ^ Yevgeny B. Karasik (2019). Optical Computational Geometry. ISBN 979-8511243344.
  • ^ S. Khuller and Y. Matias. A simple randomized sieve algorithm for the closest-pair problem. Inf. Comput., 118(1):34—37,1995 (PDF)
  • ^ S. Fortune and J.E. Hopcroft. "A note on Rabin's nearest-neighbor algorithm." Information Processing Letters, 8(1), pp. 20—23, 1979
  • Further reading[edit]

    Journals[edit]

    Combinatorial/algorithmic computational geometry[edit]

    Below is the list of the major journals that have been publishing research in geometric algorithms. Please notice with the appearance of journals specifically dedicated to computational geometry, the share of geometric publications in general-purpose computer science and computer graphics journals decreased.

    External links[edit]

    Listen to this article (9 minutes)
    Spoken Wikipedia icon
    This audio file was created from a revision of this article dated 17 September 2013 (2013-09-17), and does not reflect subsequent edits.

    Retrieved from "https://en.wikipedia.org/w/index.php?title=Computational_geometry&oldid=1217662324"

    Categories: 
    Computational geometry
    Computational fields of study
    Geometry processing
    Hidden categories: 
    Articles with short description
    Short description matches Wikidata
    Articles with excerpts
    Articles with hAudio microformats
    Spoken articles
    Articles with GND identifiers
    Articles with NKC identifiers
     



    This page was last edited on 7 April 2024, at 04:13 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki