HiveBrain v1.2.0
Get Started
← Back to all entries
patternModerate

Find a straight line to divide two convex polygons by equal area

Submitted by: @import:stackexchange-cs··
0
Viewed 0 times
convexdividelineequaltwostraightfindareapolygons

Problem

Suppose, we have two non-overlapping convex polygons $A$ and $B$. How can we draw one straight line which divides $A$ into two parts of equal area and also divides $B$ into two equal area parts?
Also, can we do this in complexity $O(n^2)$ or better? ($n = |A| + |B|$)

Solution

This is known as the Ham-Sandwich theorem:


Given two measurable objects in $2$-dimensional Euclidean space, it is possible to divide each of them in half with a line.

Note: Convexity is not needed. And $\mathbb{R}^2$ can be replaced by $\mathbb{R}^d$ with "line" replaced by a $(d{-}1)$-dimensional hyperplane.

         

         

(Image from curiosity.com.)

See the Wikipedia link
for computational versions.

Added in response to @WillardZhan's request:


Ivan Stojmenovíc. Bisections and ham-sandwich cuts
of convex polygons and polyhedra. Inf. Process. Lett.
38(1): 15-21. 1991.
(CiteSeer PDF download.)


Abstract. We present a linear time sequential algorithm for finding a straight line that bisects two given disjoint convex polygons (i.e. cuts both of them into parts of equal area).


Abbott, Timothy G., Erik D. Demaine, Martin L. Demaine, Daniel M. Kane, Stefan Langerman, Jelani Nelson, and Vincent Yeung. "Dynamic Ham-Sandwich Cuts of Convex Polygons in the Plane." In CCCG, pp. 61-64. 2005.
(PDF download.)

Context

StackExchange Computer Science Q#95605, answer score: 11

Revisions (0)

No revisions yet.