几何学中的欧拉公式:V-E+F = 2

几何学中的欧拉公式:V-E+F = 2,V、E、F表示简单几何体的顶点数、边数、面数。

证明:

它的证明有多种,这里呈现一种递归证法。

对于任意简单几何体(几何体的边界不是曲线),我们考察这个几何体的每个面,设这个边成一个n边形,我们从某个固定顶点开始连接其其他各个顶点,即将这个n边形从某个顶点进行了三角剖分,我们假想每个三角形是一个面(因为实际上多个三角形共面),那么能够看到,这个过程中E和F的增量是相同的,因此如果原来的几何体满足V-E+F = 2,则现在这个几何体(视每个三角形为一个面)仍然满足欧拉公式。

我们随机去掉一个面,则剖分后的几何体应满足V-E+F = 1.

现在我们考察这个去掉一个面之后被三角形剖分的几何体,对于某个三角形,考察它的三个边(每条边都是被两个三角形共享),会有如下的三种情况:

(1)一个边所在的另一个三角形的那个面是空的。

(2)两个边所在的另一个三角形的那个面是空的。

(3)三个边所在的另一个三角形的那个面是空的。

那么下面我们开始一个“掏空过程”,为了分析的方便,我们不在一片没有被“掏空”的区域的内部去“掏空”某个三角形,直到最终剩余一个三角形,即我们避免了第三种情况。

面临情况(1),我们掏空这个三角形,发现边数、面数各减1,V-E+F的值将不发生变化。

面临情况(2),我们掏空这个三角形,我们发现会出现两种情况,分为顶点数减1和不变的情况(想象一下),我们非常喜欢前面这种情况,因为这使得边数减2、顶点减1、面数减1,这会使得V-E+F不变,这十分有利于我们继续进行递归的等价转化。

那么如何应对这种情况呢?还记得我们一开始随机掏空的那个三角形么,容易看到它必然由三个三角形围起来,即分享这个被掏空的三角形的三个边的三角形,我们标号为1、2、3,而这三个三角形中间势必会夹着三个三角形,我们记为4、5、6,我们采取的策略是先掏空1、2、3,然后掏空4、5、6,这样将会保证V-E+F不变,同时我们将1、2、3、4、5、6视为第一层“堡垒”,对于第二层,想一想,是否也是相同的状况(掏空4、5、6又会得到三个情况(1)中的三角形)?这就保证了我们递归的正确性。(这里不需要考虑三角形个数余6的结果,因为这种自上而下的“掏空过程”将会杜绝情况(2)的第二种情况)

那么让我们来看看递归的最终状态,对于一个三角形,V = 3 、 F  =1  、 E = 3 ,显然有V-E+F = 1,然后回溯到先前的所有状态,可知对于任意的简单几何体,有欧拉公式成立:

V-E+F = 2.

证毕。

时间: 2024-08-04 12:34:10

几何学中的欧拉公式:V-E+F = 2的相关文章

Visual Studio 2013 无法使用:在文件中查找(Ctrl+Shift+F)

最近遇到一个问题就是在win7(32位.64位都试过)上安装Visual Studio 2013(专业版.旗舰版都试过)之后,打开项目,使用:在文件中查找(Ctrl+Shift+F)功能时,会突然奔溃. 后来,突然想到在安装的时候,右键,以管理员身份安装. 于是,尝试了一下,搞定!

nodejs:cmd中输入node -v提示不是内部文件等

安装好nodejs后,很想熟悉一下是否安装好了,可通过cmd实验一番,打开cmd输入"node -v",按下enter,出现如图一提示 图1 解决方案如下: 1.打开"系统属性"面板如图2(打开系统面板按如下步骤:1.桌面鼠标右击"计算机",2.弹出提示框,点击"属性",3.打开"系统"面板,点击"高级系统设置"如图3,即可进入系统属性面板) 图2 图3 2.点击"环境变量&q

grep -v|grep -F

1 cat 1 2 12 3 1234 4 1110 5 22222 6 212 7 22 8 9 cat 2 10 12 11 1234 12 111 13 9999 14 66666 15 22 16 17 grep -v 1 2 18 9999 19 66666 20 22 21 22 grep -F 2 -f 1 2 23 2:12 24 2:1234 25 2:22 26 2:12 27 2:1234 28 2:22 原文地址:https://www.cnblogs.com/yuanj

简述MVC模式中M、V、C分别指代什么及发挥的作用

C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新. 视图是用户看到并与之交互的界面,视图没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式. 模型表示企业数据和业务规则,模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性. 控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处

cmd中运行maven -v提示JAVA_HOME的配置问题解决办法

问题描述: 在安装maven之后,输入:mvn --version进行查询,结果是: The JAVA_HOME environment variable is not defined correctly.This environment variable is needed to run this program   NB: JAVA_HOME should point to a JDK not a JRE. 已经确定不是jdk版本的原因. 问题分析和解决方案: 1.JAVA_HOME的配置中

MVC模式中M,V,C每个代表意义,并简述在Struts中MVC的表现方式。

解答: MVC是Model-View-Controller 的缩写,Model代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),View 是应用的表示层(由JSP页面产生)Controller是通过应用的处理过程控制,(一般是一个servert)通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现,这些组件可以进行交互和重用. 在Struts框架中Controller功能由ActionServlet和ActionMapping对象构成,核心是一个Servlet类型的对象

Map<K, V> 中k,v如果为null就转换

Set<String> set = map.keySet(); if(set != null && !set.isEmpty()) { for(String key : set) { if(map.get(key) == null) { map.put(key, ""); } } } 原文地址:https://www.cnblogs.com/smileblogs/p/10332279.html

欧拉公式

LRJ算法入门经典第二版上面写错了,害得我想了半天... V : 点数, E :边数  F :面数 欧拉公式 V - E + F = 2: V =  n + n / 4 sum(i * (n - 2 - i));  [ 0 <= i <= n - 2]; E = n + n / 2 sum((i * (n - 2 - i ) + 1); [ 0 <= i <= n - 2]; 代码实现: #include<cstdio> #include<cstring>

《入门经典》——6.19

问题:你有一块椭圆的地.你可以在边界上选n个点,并两两连接得到n(n-1)/2条线段.他们最多能把土地分成多少部分? 分析:容易想起来我们在<具体数学>第一章遇到的折线分平面问题,但是这里并不需要你求最多的交点数而是最多的分割平面数,二者必然有着联系,我们可以基于最多交点的递推关系尝试找分割平面的递推关系,理论上是可行的,但是这里是递推套着递推,显得有点难操作. 尝试进行平面到空间的转化. 我们先将椭圆最外围的n个平面去掉,将得到的平面图形当中的交点“升起来”,这样我们将得到一个简单几何体,基