-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
增加了一个章节,详细介绍了简单多边形的面积公式 #5600
Conversation
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
感谢你对 OI Wiki 的关注!记得检查是否遵守了格式规范,听说和项目风格统一的 Pull Request 会更容易被 Merge~ |
|
请具体说明一下哪里「个人博客色彩过重」。 |
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
我觉得直接在原页面讲就好了吧 🤔 |
感性理解的部分
严格证明的部分
不一而足。 但是根本问题是第二条,OI 中用到的面积公式并不是一个十分复杂的问题,我觉得现在页面上的内容已经够了。或者说这需要证吗,只需要证明某些三角形情况的基本型,就可以扩展到多边形了吧,毕竟多边形可以剖分成三角形。 当时我看到你的 PR 标题以为你要谈测度,那可能是一个很复杂的问题,但是 OI 中几乎不用。我进来看到反而你的 PR 只是在谈怎么将向量积扩展到面积,感觉有些鸡肋了。而且有些证明感觉过于复杂,可以熟悉一些常见的证明技巧。 |
怎么扩展? |
”考虑向量积的模的几何意义,我们可以利用向量积完成。“ 向量积的模表示两个向量张成的三角形的面积,并不是多边形的面积,怎么从三角形的面积拓展到多边形的面积? 现在页面上的内容远远不够。
你说得对,但是我和几位集训队大佬讨论了半个小时才证明了这个定理。
首先,简单多边形的面积公式和三角剖分完全就是两个东西。简单多边形面积需要选取一点 而且证明是一个很严谨的过程,你不能只说“扩展一下”,要具体说明怎么扩展,如果你确实有更简单的扩展方法,可以告诉我,我也学习一下,但是要求严谨。 |
在计算几何的wiki页面上单独为了这么一个简单的公式写这么长的证明大概有点抓不住重点了。 |
This comment was marked as duplicate.
This comment was marked as duplicate.
大概扫了一下这个页面。目前的感觉是语言风格上“不太wiki”,以及内容过于冗长。 关于证明。我不反对添加。但是希望证明能控制一下长度和风格。可以参考其他人是怎么证明这个著名定理的。 现在这个和解密小说差不多了(这不是在赞美),如果是这个形状的证明,我还是建议删掉。
这个可能有待商榷。这个东西好像不是oi里面常见的考点。更合理的方式可能是作为某个页面的一个小标题 |
另外提醒参与这个thread的所有人。在交流的过程中请发表建设性的讨论 |
如果你有任何缩短证明的方法,可以告诉我。 |
我说的是计算几何中非常重要的内容,而不是 就比如,你算完凸包要不要求面积?算完半平面交要不要求面积? |
实在觉得篇幅太长了,我可以作为一个Note放在“二维计算几何“的”求多边形面积“部分。 不过首先要纠正一个科学性错误,这个公式仅适用于简单多边形,而不适用于任意多边形。 |
你先冷静一下吧 |
这个公式确实适用于不自交的多边形。 我真诚地觉得只需讨论 并且面积在人们研究几何这个学科开始的时候就已经在研究了,成百上千年来面积公式肯定被无数人审视过无数遍。我觉得先查阅相关文献,梳理研究脉络,在 OI Wiki 整理相关引用是更科学的选择,而不是自己来证明。 |
凹多边形的case下,不一定是三角剖分。不这里举的“凸包” “半平面交”其实都是凸多边形。。。 |
我 get 你的意思了,但是仍然可以用基点在外部的 case 说明吧。本质回到我 argue 的第三段。 |
外部的case,其实就是这个公式了。不过我也同意你的看法。不应该把探秘解谜的流程写到wiki里面。Wikipedia以及别的地方已经有很全面的描述了 |
扩展方式参见 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.
无论是拆成 三角 还是 梯形 都要比你的证明简洁,而且这两种证法都不像你给出的证明一样高度依赖画图和观察图像。一个高度依赖画图和观察图像的证明不能被称为严格的证明。 |
提醒一下wikipedia的那两个link其实没有证明。只是直观理解了一下。尤其是比较难的凹多边形的case
|
三角形的证明文献我已经给了。梯形的大概思路应该是首先我们假设多边形任意相邻三顶点均不共线,可以把多边形旋转一下,使得任意三顶点不共线且任意一条边都不垂直于 x 轴(因为不满足这个条件的旋转方向是有限的),接下来就是考虑所有边的投影,从左向右扫,到顶点的时候投影个数的改变量一定是偶数,然后整理一下应该就可以了。🤔 |
不知道我搜到的是不是你描述的东西。看起来第一个是在用一些微积分的知识。如果在wiki上写这个感觉还是有点奇怪
这个我好像没太get到?具体是怎么work的呀 |
首先我给的第一个文献证了简单多边形都可以三角剖分,然后第二个文献首先证了三角形下的面积公式是成立的,接着对一般的简单多边形来说,考虑它的三角剖分,不难发现落在多边形内部的边产生的贡献都会抵消(可以把三角剖分后的图看成平面图,然后参考 Euler 回路),整理一下就证出来了,后面那篇文献应该是在考虑曲线围成的区域,所以有微积分。
就是扫到某个顶点的时候考虑向后的一个小增量,我们的假设可以保证扫描线和多边形交点变化只有三种情况:-2,0,+2,因为顶点的度是 2。 |
ok我看懂了 感谢 |
为什么一定要剖分呢? |
如此“简单”的一个公式,为啥要用微积分呢? |
@ HeRaNO
不自交的多边形=简单多边形。 这个公式仅适用于简单多边形,不适用于复杂多边形。 |
??????????? |
简单多边形的面积公式是计算几何中非常重要的内容,但是目前
OI Wiki
上没有详细介绍该公式的证明方法,我想新开一个章节,详细介绍该公式及其证明。此外纠正一个错误,这个公式并不适用于”任意多边形“,只适用于简单多边形。