Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

增加了一个章节,详细介绍了简单多边形的面积公式 #5600

Closed
wants to merge 9 commits into from

Conversation

wchengk09
Copy link

@wchengk09 wchengk09 commented May 13, 2024

  • 我已认真阅读贡献指南 (contributing guidelines) 和社区公约 (code of conduct),并遵循了如何参与页及格式手册页的相应规范。

简单多边形的面积公式是计算几何中非常重要的内容,但是目前 OI Wiki 上没有详细介绍该公式的证明方法,我想新开一个章节,详细介绍该公式及其证明。

此外纠正一个错误,这个公式并不适用于”任意多边形“,只适用于简单多边形。

wchengk09 and others added 2 commits May 13, 2024 15:11
	new file:   docs/geometry/area.md
	new file:   docs/geometry/images/area1.png
	new file:   docs/geometry/images/area10.png
	new file:   docs/geometry/images/area11.png
	new file:   docs/geometry/images/area12.png
	new file:   docs/geometry/images/area13.png
	new file:   docs/geometry/images/area14.png
	new file:   docs/geometry/images/area15.png
	new file:   docs/geometry/images/area16.png
	new file:   docs/geometry/images/area17.png
	new file:   docs/geometry/images/area2.png
	new file:   docs/geometry/images/area3.png
	new file:   docs/geometry/images/area4.png
	new file:   docs/geometry/images/area5.png
	new file:   docs/geometry/images/area6.png
	new file:   docs/geometry/images/area7.png
	new file:   docs/geometry/images/area8.png
	new file:   docs/geometry/images/area9.png
	modified:   mkdocs.yml
Copy link

welcome bot commented May 13, 2024

感谢你对 OI Wiki 的关注!记得检查是否遵守了格式规范,听说和项目风格统一的 Pull Request 会更容易被 Merge~

@r-value
Copy link
Contributor

r-value commented May 13, 2024

@wchengk09
Copy link
Author

请具体说明一下哪里「个人博客色彩过重」。

wchengk09 and others added 3 commits May 13, 2024 15:46
	modified:   .github/workflows/check-format.yml
	modified:   docs/contest/io.md
	modified:   docs/ds/code/block-list/block-list_1.cpp
	modified:   docs/ds/code/dividing/dividing_1.cpp
	modified:   docs/ds/code/leftist-tree/leftist-tree_1.cpp
	modified:   docs/ds/code/leftist-tree/leftist-tree_2.cpp
	modified:   docs/ds/code/leftist-tree/leftist-tree_3.cpp
	modified:   docs/ds/code/seg-beats/seg-beats_2.cpp
	modified:   docs/ds/code/tree-decompose/tree-decompose_1.cpp
	modified:   docs/ds/llrbt.md
	modified:   docs/geometry/2d.md
	modified:   docs/geometry/area.md
	modified:   docs/geometry/inverse.md
	modified:   docs/graph/code/cut/cut_1.cpp
	modified:   docs/graph/code/lca/lca_tarjan.cpp
	modified:   docs/lang/csl/bitset.md
	modified:   docs/math/number-theory/primitive-root.md
	modified:   docs/misc/code/mo-algo-2dimen/mo-algo-2dimen_2.cpp
	modified:   docs/string/code/sa/sa_1.cpp
	modified:   docs/string/sa.md
	modified:   package.json
	modified:   yarn.lock
@Tiphereth-A
Copy link
Member

我觉得直接在原页面讲就好了吧 🤔

@HeRaNO
Copy link
Collaborator

HeRaNO commented May 13, 2024

请具体说明一下哪里「个人博客色彩过重」。

感性理解的部分

然后你神奇地发现:
有同学可能会说:

严格证明的部分

有人可能会想:“这个公式为什么这么神奇

不一而足。

但是根本问题是第二条,OI 中用到的面积公式并不是一个十分复杂的问题,我觉得现在页面上的内容已经够了。或者说这需要证吗,只需要证明某些三角形情况的基本型,就可以扩展到多边形了吧,毕竟多边形可以剖分成三角形。

当时我看到你的 PR 标题以为你要谈测度,那可能是一个很复杂的问题,但是 OI 中几乎不用。我进来看到反而你的 PR 只是在谈怎么将向量积扩展到面积,感觉有些鸡肋了。而且有些证明感觉过于复杂,可以熟悉一些常见的证明技巧。

@wchengk09
Copy link
Author

或者说这需要证吗,只需要证明某些三角形情况的基本型,就可以扩展到多边形了吧,毕竟多边形可以剖分成三角形。

怎么扩展?

@wchengk09
Copy link
Author

@HeRaNO

我觉得现在页面上的内容已经够了。

”考虑向量积的模的几何意义,我们可以利用向量积完成。“

向量积的模表示两个向量张成的三角形的面积,并不是多边形的面积,怎么从三角形的面积拓展到多边形的面积?

现在页面上的内容远远不够。

OI 中用到的面积公式并不是一个十分复杂的问题

你说得对,但是我和几位集训队大佬讨论了半个小时才证明了这个定理。

或者说这需要证吗,只需要证明某些三角形情况的基本型,就可以扩展到多边形了吧,毕竟多边形可以剖分成三角形。

首先,简单多边形的面积公式和三角剖分完全就是两个东西。简单多边形面积需要选取一点 $O$ ,这个点 $O$ 可能是多边形外的一点。而三角剖分的三角形都在多边形内部。三角剖分后,多边形的面积等于各个三角形面积相加,而这个公式是割补法,有加有减。

而且证明是一个很严谨的过程,你不能只说“扩展一下”,要具体说明怎么扩展,如果你确实有更简单的扩展方法,可以告诉我,我也学习一下,但是要求严谨。

Screenshot 2024-05-14 174625

@r-value
Copy link
Contributor

r-value commented May 14, 2024

在计算几何的wiki页面上单独为了这么一个简单的公式写这么长的证明大概有点抓不住重点了。
如果你很喜欢这些证明带来的理性愉悦,可以发表在你的个人博客上,和喜欢这些证明的同好交流。

@scp020

This comment was marked as duplicate.

@OI-wiki OI-wiki locked as too heated and limited conversation to collaborators May 14, 2024
@Enter-tainer
Copy link
Member

大概扫了一下这个页面。目前的感觉是语言风格上“不太wiki”,以及内容过于冗长。

关于证明。我不反对添加。但是希望证明能控制一下长度和风格。可以参考其他人是怎么证明这个著名定理的。

现在这个和解密小说差不多了(这不是在赞美),如果是这个形状的证明,我还是建议删掉。

简单多边形的面积公式是计算几何中非常重要的内容

这个可能有待商榷。这个东西好像不是oi里面常见的考点。更合理的方式可能是作为某个页面的一个小标题

@Enter-tainer
Copy link
Member

另外提醒参与这个thread的所有人。在交流的过程中请发表建设性的讨论

@OI-wiki OI-wiki unlocked this conversation May 14, 2024
@wchengk09
Copy link
Author

在计算几何的wiki页面上单独为了这么一个简单的公式写这么长的证明大概有点抓不住重点了。 如果你很喜欢这些证明带来的理性愉悦,可以发表在你的个人博客上,和喜欢这些证明的同好交流。

如果你有任何缩短证明的方法,可以告诉我。

@wchengk09
Copy link
Author

简单多边形的面积公式是计算几何中非常重要的内容

这个可能有待商榷。这个东西好像不是oi里面常见的考点。更合理的方式可能是作为某个页面的一个小标题

我说的是计算几何中非常重要的内容,而不是OI中非常重要的内容。

就比如,你算完凸包要不要求面积?算完半平面交要不要求面积?

@wchengk09
Copy link
Author

实在觉得篇幅太长了,我可以作为一个Note放在“二维计算几何“的”求多边形面积“部分。

不过首先要纠正一个科学性错误,这个公式仅适用于简单多边形,而不适用于任意多边形

@OI-wiki OI-wiki locked as too heated and limited conversation to collaborators May 14, 2024
@Enter-tainer
Copy link
Member

你先冷静一下吧

@HeRaNO
Copy link
Collaborator

HeRaNO commented May 14, 2024

这个公式确实适用于不自交的多边形。

我真诚地觉得只需讨论 $O$ 在多边形内部(包括边界)和外部的情况。在内部的情况类同三角剖分,在外部的情况只需考虑相邻两边和 $O$ 组成的三角形,并根据右手定则可以减去不在内部的面积。这两种情况都很好想。

并且面积在人们研究几何这个学科开始的时候就已经在研究了,成百上千年来面积公式肯定被无数人审视过无数遍。我觉得先查阅相关文献,梳理研究脉络,在 OI Wiki 整理相关引用是更科学的选择,而不是自己来证明。

@Enter-tainer
Copy link
Member

在内部的情况类同三角剖分

凹多边形的case下,不一定是三角剖分。不这里举的“凸包” “半平面交”其实都是凸多边形。。。

@HeRaNO
Copy link
Collaborator

HeRaNO commented May 14, 2024

在内部的情况类同三角剖分

凹多边形的case下,不一定是三角剖分。不这里举的“凸包” “半平面交”其实都是凸多边形。。。

我 get 你的意思了,但是仍然可以用基点在外部的 case 说明吧。本质回到我 argue 的第三段。

@Enter-tainer
Copy link
Member

在内部的情况类同三角剖分

凹多边形的case下,不一定是三角剖分。不这里举的“凸包” “半平面交”其实都是凸多边形。。。

我 get 你的意思了,但是仍然可以用基点在外部的 case 说明吧。本质回到我 argue 的第三段。

外部的case,其实就是这个公式了。不过我也同意你的看法。不应该把探秘解谜的流程写到wiki里面。Wikipedia以及别的地方已经有很全面的描述了

@Tiphereth-A
Copy link
Member

Tiphereth-A commented May 15, 2024

或者说这需要证吗,只需要证明某些三角形情况的基本型,就可以扩展到多边形了吧,毕竟多边形可以剖分成三角形。

怎么扩展?

扩展方式参见 Hille, E. (1959). Analytic function theory, Volume I 第 286 页的定理 B.2.1.

基于该方法的证明参见 Braden, B. (1986). The surveyor's area formula. The College Mathematics Journal, 17(4), 326-337.

在计算几何的wiki页面上单独为了这么一个简单的公式写这么长的证明大概有点抓不住重点了。 如果你很喜欢这些证明带来的理性愉悦,可以发表在你的个人博客上,和喜欢这些证明的同好交流。

如果你有任何缩短证明的方法,可以告诉我。

无论是拆成 三角 还是 梯形 都要比你的证明简洁,而且这两种证法都不像你给出的证明一样高度依赖画图和观察图像。一个高度依赖画图和观察图像的证明不能被称为严格的证明。

@OI-wiki OI-wiki unlocked this conversation May 15, 2024
@Enter-tainer
Copy link
Member

提醒一下wikipedia的那两个link其实没有证明。只是直观理解了一下。尤其是比较难的凹多边形的case

In the non convex case one has to consider the situation more carefully (see diagram). In any case the result is ...

@Tiphereth-A
Copy link
Member

提醒一下wikipedia的那两个link其实没有证明。只是直观理解了一下。尤其是比较难的凹多边形的case

三角形的证明文献我已经给了。梯形的大概思路应该是首先我们假设多边形任意相邻三顶点均不共线,可以把多边形旋转一下,使得任意三顶点不共线且任意一条边都不垂直于 x 轴(因为不满足这个条件的旋转方向是有限的),接下来就是考虑所有边的投影,从左向右扫,到顶点的时候投影个数的改变量一定是偶数,然后整理一下应该就可以了。🤔

@Enter-tainer
Copy link
Member

不知道我搜到的是不是你描述的东西。看起来第一个是在用一些微积分的知识。如果在wiki上写这个感觉还是有点奇怪

接下来就是考虑所有边的投影,从左向右扫,到顶点的时候投影个数的改变量一定是偶数,然后整理一下

这个我好像没太get到?具体是怎么work的呀

@Tiphereth-A
Copy link
Member

Tiphereth-A commented May 15, 2024

不知道我搜到的是不是你描述的东西。看起来第一个是在用一些微积分的知识。如果在wiki上写这个感觉还是有点奇怪

首先我给的第一个文献证了简单多边形都可以三角剖分,然后第二个文献首先证了三角形下的面积公式是成立的,接着对一般的简单多边形来说,考虑它的三角剖分,不难发现落在多边形内部的边产生的贡献都会抵消(可以把三角剖分后的图看成平面图,然后参考 Euler 回路),整理一下就证出来了,后面那篇文献应该是在考虑曲线围成的区域,所以有微积分。

这个我好像没太get到?具体是怎么work的呀

就是扫到某个顶点的时候考虑向后的一个小增量,我们的假设可以保证扫描线和多边形交点变化只有三种情况:-2,0,+2,因为顶点的度是 2。

@Enter-tainer
Copy link
Member

ok我看懂了 感谢

@wchengk09
Copy link
Author

为什么一定要剖分呢?

@wchengk09
Copy link
Author

@Tiphereth-A

所以有微积分。

如此“简单”的一个公式,为啥要用微积分呢?

@wchengk09
Copy link
Author

@ HeRaNO

这个公式确实适用于不自交的多边形。

不自交的多边形=简单多边形。

这个公式仅适用于简单多边形,不适用于复杂多边形。

@wchengk09
Copy link
Author

wchengk09 commented May 23, 2024

@Tiphereth-A

一个高度依赖画图和观察图像的证明不能被称为严格的证明。

???????????

@OI-wiki OI-wiki locked and limited conversation to collaborators May 23, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants