From ff8e1f9dda3064a4750fe24c058a54c01f9a7e31 Mon Sep 17 00:00:00 2001 From: wjy-yy <36905782+wjy-yy@users.noreply.github.com> Date: Thu, 14 Feb 2019 15:05:03 +0800 Subject: [PATCH] =?utf8?q?=E6=9B=B4=E6=96=B0=E4=BA=86=E5=8D=8A=E5=B9=B3?= =?utf8?q?=E9=9D=A2=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- docs/geometry/half-plane-intersection.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/geometry/half-plane-intersection.md b/docs/geometry/half-plane-intersection.md index 7c595483..d1d9d59d 100644 --- a/docs/geometry/half-plane-intersection.md +++ b/docs/geometry/half-plane-intersection.md @@ -8,7 +8,7 @@ 在计算几何中用向量表示,整个题统一以向量的左侧或右侧为半平面。 -![半平面](http://www.wjyyy.top/wp-content/uploads/2019/02/201902132142.png) +![半平面](./images/hpi1.PNG) ### 半平面交 @@ -17,6 +17,7 @@ 这就很像普通的线性规划问题了,得到的半平面交就是线性规划中的可行域。一般情况下半平面交是有限的,经常考察面积等问题的解决。 它可以理解为向量集中每一个向量的右侧的交,或者是下面方程组的解。 + $$ \left\{\begin{matrix} A_1x+B_1y+C\ge 0\\ @@ -35,7 +36,7 @@ $$ ### 极角排序 -C 语言有一个库函数叫做 `atan2(double y,double x)`,可以返回 $\theta\in (-\pi,\pi]​$,$\theta =\arctan \frac{y}{x}​$。 +C 语言有一个库函数叫做 `atan2(double y,double x)`,可以返回 $\theta\in (-\pi,\pi]$,$\theta =\arctan \frac{y}{x}$。 直接以向量为自变量,调用这个函数,以返回值为关键字排序,得到新的边(向量)集。 @@ -49,7 +50,7 @@ C 语言有一个库函数叫做 `atan2(double y,double x)`,可以返回 $\the 对于当前向量,如果上一个交点在这条向量表示的半平面交的**异侧**,那么上一条边就没有意义了。 -![单调队列](http://www.wjyyy.top/wp-content/uploads/2019/02/201902140707.png) +![单调队列](./images/hpi2.PNG) 如上图,假设取向量左侧半平面。极角排序后,遍历顺序应该是 $\vec a\to\vec b\to\vec c$。当 $\vec a$ 和 $\vec b$ 入队时,在交点数组里会产生一个点 $D$ (交点数组保存队列中相同下标的向量与前一向量的交点)。 @@ -57,9 +58,9 @@ C 语言有一个库函数叫做 `atan2(double y,double x)`,可以返回 $\the 还有一种可能的情况是快结束的时候,新加入的向量会从队首开始造成影响。 -![队首影响](http://www.wjyyy.top/wp-content/uploads/2019/02/2019021407479.png) +![队首影响](./images/hpi3.PNG) -仍然假设取向量左侧半平面。加入向量 $\vec e​$ 之后,第一个交点 $G​$ 就在 $\vec e​$ 的右侧,我们把上面的判断标准逆过来看,就知道此时应该删除向量 $ \vec a$,也即**队首**的向量。 +仍然假设取向量左侧半平面。加入向量 $\vec e$ 之后,第一个交点 $G$ 就在 $\vec e$ 的右侧,我们把上面的判断标准逆过来看,就知道此时应该删除向量 $ \vec a$,也即**队首**的向量。 最后用队首的向量排除一下队尾多余的向量。因为队首的向量会被后面的约束,而队尾的向量不会。此时它们围成了一个环,因此队首的向量就可以约束队尾的向量。 -- 2.11.0