Duality

there is a 1-to-1 mapping between points and non-vertical lines

map every point p to a line: p:y=pxxpyp^*:y=p_xx-p_y, p:y=pxx+pyp^{**}:y=p_xx+p_y

every line l:y=ax+bl:y=ax+b to a point l=(a,b)l^*=(a,-b).

claim: if pp is on(below/above) lll\Leftrightarrow l^* is on(below/above) pp^*.

Proof:

p(px,py),l:y=ax+bp is on lpy=apx+bl(a,b),p:y=pxxpywe plug l into p:pxa(b)=apx+b=pyQ.E.D.p(p_x,p_y),l:y=ax+b\\ \text{p is on l}\Rightarrow p_y=ap_x+b\\ l^*(a,-b),p^*:y=p_xx-p_y\\ \text{we plug }l^*\text{ into }p^*:p_xa-(-b)=ap_x+b=p_y\\ Q.E.D.

observation: the duality transform has the following properties:

  • it is incidence preserving: qllqq\in l\Lrarr l^*\in q^*.
  • order preserving: pp below lll\Lrarr l^* below pp^*.

Dual point for line segment

如何找线段所在直线的对偶点?

找到线段的两个端点 P,QP,Q,得到两个点的对偶线 P,QP^*,Q^*, 这两条对偶线的交点就是原线段的对偶点。

有趣的性质:一条直线上所有的点的对偶线,都必经过这条直线的对偶点。

对于一条线段上的所有点,可以把它们表示成两端点对应的两条对偶线的“夹角”(夹住的所有对偶线的集合)。

如果两条线段有交点,说明两条线对应的两个夹角能“相互看见”。

Projective Plane

given any 2 points, P,QP,Q, we can draw a line ll through them.

given any 2 line, l1,l2l_1,l_2, we can find a point of intersection XX. (if parallel, we make it intersect on infinity point XX)

在投影平面 projective plane 上,只有一个 point at infinity,所以一条直线只和无穷远处的点有一个交点。

Arrangements of lines

nn lines in the plane.

A\mathcal A is the subdivision of R2\mathbb R^2 induced by LL. A\mathcal A is the arrangement induced by LL. A\mathcal A has complexity O(n2)O(n^2).

nn lines, at most n(n1)2\frac{n(n-1)}{2} intersect points, at most 1+n(n+1)21+\frac{n(n+1)}{2} faces.

vertex: intersection of dd hyperplanes 0-dimensional

edge: intersection of d-1 hyperplanes 1-dimensional

j-face: intersection of d-j hyperplanes j-dimensional

d-1-face or facet: on 1 hyperplane d-1-dimensional

cell: on 0 hyperplane d-dimensional

Φd(n)\Phi_d(n): number of cells in an arrangement of n hyperplanes in d-dimensional

Claim:

Φ2(n)=n(n+1)2+1\Phi_2(n)=\frac{n(n+1)}{2}+1

Φd(n)=i=0dCni\Phi_d(n)=\sum_{i=0}^dC_n^i

Zone Theorem

the complexity of the zone Z\mathcal Z of a line ll in an arrangement of mm lines in R2\mathbb R^2 is O(m)O(m).

2D Zone Theorem: complexity of cells crossed by a line is O(n)O(n).

证明:对于一条直线,会和一些线有交点,经过了一些面,这些面的左交点对应的线 left bound edge 和右交点对应的线 right bound edge 数量之和最多有 2n 条。

complexity of cells crossed by a hyperplane is O(nd1)O(n^{d-1}).

How to compute DCEL in bounding box which contains all intersect point?

An incremental algorithm

  1. compute the bounding box BB and initialize an empty DCEL for A\mathcal A.

  2. for i=1 to n do

    find the face ff incident to the left boundary of BB containing lil_i.

    while ff is not the unbounded face do

    • split the current face ff into f1,f2f_1,f_2
    • walk to the next face intersected by lil_i.

how to split a face? walk around each face.

running time:

O(n2)+i=1nO(time to insert li)=O(n2)+i=1nO(complexity of the zone Zi of li)=O(n2)+i=1nO(i)=O(n2)O(n^2)+\sum_{i=1}^nO(\text{time to insert }l_i)\\ =O(n^2)+\sum_{i=1}^nO(\text{complexity of the zone }Z_i\text{ of }l_i)\\ =O(n^2)+\sum_{i=1}^nO(i)=O(n^2)