In
geometry, space partitioning is the process of dividing a
space (usually a
Euclidean space) into two or more
disjoint subset
In mathematics, Set (mathematics), set ''A'' is a subset of a set ''B'' if all Element (mathematics), elements of ''A'' are also elements of ''B''; ''B'' is then a superset of ''A''. It is possible for ''A'' and ''B'' to be equal; if they are ...
s (see also
partition of a set). In other words, space partitioning divides a space into non-overlapping regions. Any point in the space can then be identified to lie in exactly one of the regions.
Overview
Space-partitioning systems are often
hierarchical
A hierarchy (from Greek: , from , 'president of sacred rites') is an arrangement of items (objects, names, values, categories, etc.) that are represented as being "above", "below", or "at the same level as" one another. Hierarchy is an important ...
, meaning that a space (or a region of space) is divided into several regions, and then the same space-partitioning system is
recursively applied to each of the regions thus created. The regions can be organized into a
tree, called a space-partitioning tree.
Most space-partitioning systems use
planes (or, in higher dimensions,
hyperplane
In geometry, a hyperplane is a subspace whose dimension is one less than that of its ''ambient space''. For example, if a space is 3-dimensional then its hyperplanes are the 2-dimensional planes, while if the space is 2-dimensional, its hyper ...
s) to divide space: points on one side of the plane form one region, and points on the other side form another. Points exactly on the plane are usually arbitrarily assigned to one or the other side. Recursively partitioning space using planes in this way produces a
BSP tree
In computer science, binary space partitioning (BSP) is a method for space partitioning which recursively subdivides a Euclidean space into two convex sets by using hyperplanes as partitions. This process of subdividing gives rise to a represent ...
, one of the most common forms of space partitioning.
Uses
In computer graphics
Space partitioning is particularly important in
computer graphics, especially heavily used in
ray tracing, where it is frequently used to organize the objects in a virtual scene. A typical scene may contain millions of polygons. Performing a ray/polygon
intersection test with each would be a very computationally expensive task.
Storing objects in a space-partitioning
data structure
In computer science, a data structure is a data organization, management, and storage format that is usually chosen for efficient access to data. More precisely, a data structure is a collection of data values, the relationships among them, a ...
(
''k''-d tree or
BSP tree
In computer science, binary space partitioning (BSP) is a method for space partitioning which recursively subdivides a Euclidean space into two convex sets by using hyperplanes as partitions. This process of subdividing gives rise to a represent ...
for example) makes it easy and fast to perform certain kinds of geometry queries—for example in determining whether a ray intersects an object, space partitioning can reduce the number of intersection test to just a few per primary ray, yielding a logarithmic
time complexity with respect to the number of polygons.
Space partitioning is also often used in scanline algorithms to eliminate the polygons out of the camera's
viewing frustum
In 3D computer graphics, the view frustum (also called viewing frustum) is the region of space in the modeled world that may appear on the screen; it is the field of view of a perspective virtual camera system.
The view frustum is typically ...
, limiting the number of polygons processed by the pipeline. There is also a usage in
collision detection: determining whether two objects are close to each other can be much faster using space partitioning.
In integrated circuit design
In
integrated circuit design, an important step is
design rule check. This step ensures that the completed design is manufacturable. The check involves rules that specify widths and spacings and other geometry patterns. A modern design can have billions of polygons that represent wires and transistors. Efficient checking relies heavily on geometry query. For example, a rule may specify that any polygon must be at least ''n'' nanometers from any other polygon. This is converted into a geometry query by enlarging a polygon by ''n/2'' at all sides and query to find all intersecting polygons.
In probability and statistical learning theory
The number of components in a space partition plays a central role in some results in probability theory. See
Growth function for more details.
In Geography and GIS
There are many studies and applications where Geographical Spatial Reality is partitioned by
hydrological criteria,
administrative criteria,
mathematical criteria or many others.
In the context of
Cartography and
GIS - Geographic Information System, is common to identify cells of the partition by
standard codes. For example the for
HUC code identifying hydrographical basins and sub-basins,
ISO 3166-2 codes identifying countries and its subdivisions, or arbitrary
DGGs - discrete global grids identifying quadrants or locations.
Data structures
Common space-partitioning systems include:
*
BSP tree
In computer science, binary space partitioning (BSP) is a method for space partitioning which recursively subdivides a Euclidean space into two convex sets by using hyperplanes as partitions. This process of subdividing gives rise to a represent ...
s
*
Quadtrees
*
Octrees
*
''k''-d trees
*
Bins
*
R-tree
R-trees are tree data structures used for spatial access methods, i.e., for indexing multi-dimensional information such as geographical coordinates, rectangles or polygons. The R-tree was proposed by Antonin Guttman in 1984 and has found sign ...
s
Number of components
Suppose the n-dimensional
Euclidean space is partitioned by
hyperplane
In geometry, a hyperplane is a subspace whose dimension is one less than that of its ''ambient space''. For example, if a space is 3-dimensional then its hyperplanes are the 2-dimensional planes, while if the space is 2-dimensional, its hyper ...
s that are
-dimensional. What is the number of components in the partition? The largest number of components is attained when the hyperplanes are in
general position, i.e, no two are parallel and no three have the same intersection. Denote this maximum number of components by
. Then, the following recurrence relation holds:
[See also detailed discussions and explanations o]
the case n=2
an
the general case
See also .
::
::
- when there are no dimensions, there is a single point.
::
- when there are no hyperplanes, all the space is a single component.
And its solution is:
::
if
::
if
::::(consider e.g.
perpendicular hyperplanes; each additional hyperplane divides each existing component to 2).
which is upper-bounded as:
::
See also
*
Binary space partitioning
*
Discrete global grid
*
Polygon partition
In geometry, a partition of a polygon is a set of primitive units (e.g. squares), which do not overlap and whose union equals the polygon. A polygon partition problem is a problem of finding a partition which is minimal in some sense, for example ...
*
Tessellation
References
{{Reflist
Computer graphics
Geometric algorithms