From c0997cfa3560f421bb7a39c1160fff5e4275e95c Mon Sep 17 00:00:00 2001 From: hyp1231 Date: Fri, 4 Oct 2019 17:58:49 +0800 Subject: [PATCH] =?utf8?q?=E6=B7=BB=E5=8A=A0=E3=80=8C=E8=AE=A1=E7=AE=97?= =?utf8?q?=E5=87=A0=E4=BD=95=20-=20=E5=8F=8D=E6=BC=94=E5=8F=98=E6=8D=A2?= =?utf8?q?=E3=80=8D=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 添加「计算几何 - 反演变换」页面,对应的 mkdocs.yml 已更新,其中 HDU 的题目用 vjudge 链接代替。 --- docs/geometry/images/inverse1.png | Bin 0 -> 13060 bytes docs/geometry/images/inverse2.png | Bin 0 -> 35537 bytes docs/geometry/images/inverse3.png | Bin 0 -> 8345 bytes docs/geometry/images/inverse4.png | Bin 0 -> 26226 bytes docs/geometry/inverse.md | 217 ++++++++++++++++++++++++++++++++++++++ mkdocs.yml | 1 + 6 files changed, 218 insertions(+) create mode 100644 docs/geometry/images/inverse1.png create mode 100644 docs/geometry/images/inverse2.png create mode 100644 docs/geometry/images/inverse3.png create mode 100644 docs/geometry/images/inverse4.png create mode 100644 docs/geometry/inverse.md diff --git a/docs/geometry/images/inverse1.png b/docs/geometry/images/inverse1.png new file mode 100644 index 0000000000000000000000000000000000000000..e49121b12df4e021a9358023202907c64efb4229 GIT binary patch literal 13060 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 GH~traFXpQN literal 0 HcmV?d00001 diff --git a/docs/geometry/images/inverse2.png b/docs/geometry/images/inverse2.png new file mode 100644 index 0000000000000000000000000000000000000000..02382411e171b5fbbed004baec89420e82b4a33c GIT binary patch literal 35537 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 St8RME00f?{elF{r5}E)j%EoyB literal 0 HcmV?d00001 diff --git a/docs/geometry/images/inverse3.png b/docs/geometry/images/inverse3.png new file mode 100644 index 0000000000000000000000000000000000000000..8c092296bb7a5dded6c8bdc41220c36d77ba51bb GIT binary patch literal 8345 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 L(p0RFe;oLKf@DKl literal 0 HcmV?d00001 diff --git a/docs/geometry/inverse.md b/docs/geometry/inverse.md new file mode 100644 index 00000000..d80813ae --- /dev/null +++ b/docs/geometry/inverse.md @@ -0,0 +1,217 @@ +author: hyp1231 + +## 定义 + +给定反演中心点 $O$ 和反演半径 $R$。若平面上点 $P$ 和 $P'$ 满足: + +- 点 $P'$ 在射线 $\overrightarrow{OP}$ 上 +- $|OP| \cdot |OP'| = R^2$ + +则称点 $P$ 和点 $P'$ 互为反演点。 + +下图所示即为平面上一点 $P$ 的反演: + +![Inv1](./images/inverse1.png) + +## 性质 + +1. 圆 $O$ 外的点的反演点在圆 $O$ 内,反之亦然;圆 $O$ 上的点的反演点为其自身。 + +2. 不过点 $O$ 的圆 $A$,其反演图形也是不过点 $O$ 的圆。 + + ![Inv2](./images/inverse2.png) + + * 记圆 $A$ 半径为 $r_1$,其反演图形圆 $B$ 半径为 $r_2$,则有: + + $$ + r_2 = \frac{1}{2}\left(\frac{1}{|OA| - r_1} - \frac{1}{|OA| + r_2}\right) R^2 + $$ + + **证明:** + + ![Inv3](./images/inverse3.png) + + 根据反演变换定义: + + $$ + |OC|\cdot|OC'| = (|OA|+r_1)\cdot(|OB|-r_2) = R^2 \\ + |OD|\cdot|OD'| = (|OA|-r_1)\cdot(|OB|+r_2) = R^2 + $$ + + 消掉 $|OB|$,解方程即可。 + + * 记点 $O$ 坐标为 $(x_0, y_0)$,点 $A$ 坐标为 $x_1, y_1$,点 $B$ 坐标为 $x_2, y_2$,则有: + + $$ + x_2 = x_0 + \frac{|OB|}{|OA|} (x_1 - x_0) \\ + y_2 = y_0 + \frac{|OB|}{|OA|} (y_1 - y_0) + $$ + + 其中 $|OB|$ 可在上述求 $r_2$ 的过程中计算得到。 + +3. 过点 $O$ 的圆 $A$,其反演图形是不过点 $O$ 的直线。 + + ??? note + 为什么是一条直线呢?因为圆 $A$ 上无限接近点 $O$ 的一点,其反演点离点 $O$ 无限远。 + + ![Inv4](./images/inverse4.png) + +4. 两个图形相切,则他们的反演图形也相切。 + +## 例题 + +### [「ICPC 2013 杭州赛区」Problem of Apollonius](https://vjudge.net/problem/HDU-4773) + +#### 题目大意 + +求过两圆外一点,且与两圆相切的所有的圆。 + +#### 解法 + +首先考虑解析几何解法,似乎很难求解。 + +考虑以需要经过的点为反演中心进行反演(反演半径任意),所求的圆的反演图形是一条直线(应用性质 $3$),且与给出题目给出两圆的反演图形(性质 $2$)相切(性质 $4$)。 + +于是题目经过反演变换后转变为:求两圆的所有公切线。 + +求出公切线后,反演回原平面即可。 + +??? note "示例代码" + ```cpp + #include + #include + #include + #include + #include + #include + using namespace std; + + const double EPS = 1e-8; //精度系数 + const double PI = acos(-1.0); //π + const int N = 4; + + struct Point { + double x, y; + Point(double x = 0, double y = 0) :x(x), y(y) {} + const bool operator < (Point A)const { + return x == A.x ? y < A.y : x < A.x; + } + }; //点的定义 + + typedef Point Vector; //向量的定义 + + Vector operator + (Vector A, Vector B) { return Vector(A.x + B.x, A.y + B.y); } //向量加法 + Vector operator - (Vector A, Vector B) { return Vector(A.x - B.x, A.y - B.y); } //向量减法 + Vector operator * (Vector A, double p) { return Vector(A.x*p, A.y*p); } //向量数乘 + Vector operator / (Vector A, double p) { return Vector(A.x / p, A.y / p); } //向量数除 + + int dcmp(double x) { + if (fabs(x) < EPS)return 0; else return x < 0 ? -1 : 1; + } //与0的关系 + + double Dot(Vector A, Vector B) { return A.x * B.x + A.y * B.y; } //向量点乘 + double Length(Vector A) { return sqrt(Dot(A, A)); } //向量长度 + double Cross(Vector A, Vector B) { return A.x*B.y - A.y*B.x; } //向量叉乘 + + Point GetLineProjection(Point P, Point A, Point B) { + Vector v = B - A; + return A + v*(Dot(v, P - A) / Dot(v, v)); + } //点在直线上投影 + + struct Circle { + Point c; + double r; + Circle() :c(Point(0, 0)), r(0) {} + Circle(Point c, double r = 0) :c(c), r(r) {} + Point point(double a) { return Point(c.x + cos(a)*r, c.y + sin(a)*r); } //输入极角返回点坐标 + }; //圆 + + // a[i] 和 b[i] 分别是第i条切线在圆A和圆B上的切点 + int getTangents(Circle A, Circle B, Point* a, Point* b) { + int cnt = 0; + if (A.r < B.r) { swap(A, B); swap(a, b); } + double d2 = (A.c.x - B.c.x)*(A.c.x - B.c.x) + (A.c.y - B.c.y)*(A.c.y - B.c.y); + double rdiff = A.r - B.r; + double rsum = A.r + B.r; + if (dcmp(d2 - rdiff * rdiff) < 0) return 0; //内含 + + double base = atan2(B.c.y - A.c.y, B.c.x - A.c.x); + if (dcmp(d2) == 0 && dcmp(A.r - B.r) == 0)return -1; //无限多条切线 + if (dcmp(d2 - rdiff*rdiff) == 0) { //内切,一条切线 + a[cnt] = A.point(base); b[cnt] = B.point(base); ++cnt; + return 1; + } + //有外公切线 + double ang = acos(rdiff / sqrt(d2)); + a[cnt] = A.point(base + ang); b[cnt] = B.point(base + ang); ++cnt; + a[cnt] = A.point(base - ang); b[cnt] = B.point(base - ang); ++cnt; + if (dcmp(d2 - rsum*rsum) == 0) { //一条内公切线 + a[cnt] = A.point(base); b[cnt] = B.point(PI + base); ++cnt; + } else if (dcmp(d2 - rsum*rsum) > 0) { //两条内公切线 + double ang = acos(rsum / sqrt(d2)); + a[cnt] = A.point(base + ang); b[cnt] = B.point(PI + base + ang); ++cnt; + a[cnt] = A.point(base - ang); b[cnt] = B.point(PI + base - ang); ++cnt; + } + return cnt; + } // 两圆公切线 返回切线的条数,-1表示无穷多条切线 + + Circle Inversion_C2C(Point O, double R, Circle A) { + double OA = Length(A.c - O); + double RB = 0.5 * ((1 / (OA - A.r)) - (1 / (OA + A.r))) * R * R; + double OB = OA * RB / A.r; + double Bx = O.x + (A.c.x - O.x) * OB / OA; + double By = O.y + (A.c.y - O.y) * OB / OA; + return Circle(Point(Bx, By), RB); + } // 点 O 在圆 A 外,求圆 A 的反演圆 B,R 是反演半径 + + Circle Inversion_L2C(Point O, double R, Point A, Vector v) { + Point P = GetLineProjection(O, A, A + v); + double d = Length(O - P); + double RB = R * R / (2 * d); + Vector VB = (P - O) / d * RB; + return Circle(O + VB, RB); + } // 直线反演为过 O 点的圆 B,R 是反演半径 + + bool theSameSideOfLine(Point A, Point B, Point S, Vector v) { + return dcmp(Cross(A - S, v)) * dcmp(Cross(B - S, v)) > 0; + } // 返回 true 如果 A B 两点在直线同侧 + + int main() { + int T; + scanf("%d", &T); + while (T--) { + Circle A, B; + Point P; + scanf("%lf%lf%lf", &A.c.x, &A.c.y, &A.r); + scanf("%lf%lf%lf", &B.c.x, &B.c.y, &B.r); + scanf("%lf%lf", &P.x, &P.y); + Circle NA = Inversion_C2C(P, 10, A); + Circle NB = Inversion_C2C(P, 10, B); + Point LA[N], LB[N]; + Circle ansC[N]; + int q = getTangents(NA, NB, LA, LB), ans = 0; + for (int i = 0; i < q; ++i) if (theSameSideOfLine(NA.c, NB.c, LA[i], LB[i] - LA[i])) { + if (!theSameSideOfLine(P, NA.c, LA[i], LB[i] - LA[i])) continue; + ansC[ans++] = Inversion_L2C(P, 10, LA[i], LB[i] - LA[i]); + } + printf("%d\n", ans); + for (int i = 0; i < ans; ++i) { + printf("%.8f %.8f %.8f\n", ansC[i].c.x, ansC[i].c.y, ansC[i].r); + } + } + + return 0; + } + ``` + +## 练习 + +[「ICPC 2017 南宁赛区网络赛」Finding the Radius for an Inserted Circle](https://nanti.jisuanke.com/t/A1283) + +[「CCPC 2017 网络赛」The Designer](https://vjudge.net/problem/HDU-6158) + +## References + +* [Inversive geometry - Wikipedia](https://en.wikipedia.org/wiki/Inversive_geometry) + +* [圆的反演变换 - ACdreamers的博客](https://blog.csdn.net/acdreamers/article/details/16966369) diff --git a/mkdocs.yml b/mkdocs.yml index 3f9861c0..6bf14e2e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -344,6 +344,7 @@ nav: - 半平面交: geometry/half-plane.md - 平面最近点对: geometry/nearest-points.md - 随机增量法: geometry/random-incremental.md + - 反演变换: geometry/inverse.md - 计算几何杂项: geometry/misc.md - 杂项: - 杂项简介: misc/index.md -- 2.11.0