From 6963adbc455f8013ba05e780a105256afbe0e7e3 Mon Sep 17 00:00:00 2001 From: Efi Fogel Date: Wed, 13 Sep 2006 14:38:39 +0000 Subject: [PATCH] Rephrasing and typo fixing --- Envelope_2/doc_tex/Envelope_2/envelope.tex | 35 +++++++++++----------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/Envelope_2/doc_tex/Envelope_2/envelope.tex b/Envelope_2/doc_tex/Envelope_2/envelope.tex index 22cae24e6ec..ffdd26df010 100644 --- a/Envelope_2/doc_tex/Envelope_2/envelope.tex +++ b/Envelope_2/doc_tex/Envelope_2/envelope.tex @@ -1,10 +1,10 @@ -A continuous curve $C$ in $\reals^2$ is called {\em $x$-monotone} if +A continuous curve $C$ in $\reals^2$ is called {\em $x$-monotone}, if every vertical line intersects it at a single point at most. For example, the circle $x^2 + y^2 = 1$ is {\em not} $xy$-monotone as the vertical line $x = 0$ intersects it at $(0, -1)$ and at $(0, 1)$; however, it is possible to split the circle into an upper part and a -lower part, such that both these parts are $x$-monotone. +lower part, such that both of these parts are $x$-monotone. An $x$-monotone curve can be represented as a univariate function $y = C(x)$, defined over some continuous range $R_C \subseteq \reals$. @@ -56,18 +56,18 @@ In the rest of this chapter, we refer to both these diagrams as {\em envelope diagrams}. Lower and upper envelopes can be efficiently computed using a -divide-and-conquer approach. First note that the envelope diagram for +divide-and-conquer approach. First, note that the envelope diagram for a single $x$-monotone curve $C_k$ is trivial to compute: we project the boundary of its range of definition $R_{C_k}$ onto the $x$-axis and label the features it induces accordingly. Given a set $\hat{\calC}$ of (non necessarily $x$-monotone) curves in $\reals^2$, -we start by subdividing each curve into a finite number of weakly -$x$-monotone curves\footnote{To handle degenerate inputs, we consider -vertical segments as {\em weakly} $x$-monotone.}, obtaining the set -$\calC$. We continue by splitting the set into two disjoint subsets -$\calC_1$ and $\calC_2$, and we compute their envelope diagrams -recursively. We finally have to merge the diagrams, and we do this in -linear time by traversing both diagrams in parallel. +we subdivide each curve into a finite number of weakly $x$-monotone +curves,\footnote{We consider vertical segments as {\em weakly} +$x$-monotone, to handle degenerate inputs properly.} and obtain the set +$\calC$. Then, we split the set into two disjoint subsets $\calC_1$ +and $\calC_2$, and we compute their envelope diagrams recursively. +Finally, we merge the diagrams, and we do this in linear time +traversing both diagrams in parallel. \section{The Envelope Diagram} \label{env2_sec:env_diag} @@ -94,14 +94,14 @@ diagram these functions output. The minimization diagram \end{ccHtmlOnly} -\caption{The lower envelope of eight line segments, labeled +\caption{The lower envelope of eight line segments, labelled $A, \ldots, H$\,, as constructed in \ccc{ex_envelope_segments.cpp}. The minimization diagram is shown at the bottom, where each diagram vertex points to the point associated with it, and the labels of the segment that induce a diagram edge are displayed below this edge. Note that there exists one edge that represents an overlap -and there are also a few edges that represent empty -intervals.\label{env2_fig:min_diag}} +(even if more than a single curve induces it), and there are also a +few edges that represent empty intervals.\label{env2_fig:min_diag}} \end{figure} A minimization diagram or a maximization diagram is represented by @@ -153,9 +153,9 @@ type. %================= The following example demonstrates how to compute and traverse the -minimization diagram of line segments, ase illustrated in +minimization diagram of line segments, as illustrated in Figure~\ref{env2_fig:min_diag}. We use the curve-data traits -parameterized by the \ccc{Arr_segment_traits_2} class in order to +instantiated by the \ccc{Arr_segment_traits_2} class, in order to attach a label (a \ccc{char} in this case) to each input segment. We use these labels when we print the minimization diagram: @@ -176,7 +176,7 @@ upper envelope of $\calP^{*}$ are dual to the points along the e.g.,~\cite[Section~11.4]{bkos-cgaa-00} for more details. Note that the leftmost edge of the minimization diagram is associated with the same line as the rightmost edge of the maximization diagram, -and vic-versa. We can therefore skip the rightmost edges of both +and vice-versa. We can therefore skip the rightmost edges of both diagrams: \ccIncludeExampleCode{Envelope_2/ex_convex_hull.cpp} @@ -194,7 +194,8 @@ diagrams: \end{ccHtmlOnly} \caption{A set of four circles, as constructed in \ccc{ex_envelope_circles.cpp}. The lower envelope and the upper -envelope are shown using thick dashed lines.\label{env2_fig:ex_circ}} +envelope are shown using thick dashed lines of different colors +respectively.\label{env2_fig:ex_circ}} \end{figure} We conclude by an example of envelopes of non-linear curves.