acm算法 计算几何基础

acm算法 计算几何基础

ID:19800054

大小:1.48 MB

页数:71页

时间:2018-10-06

acm算法 计算几何基础_第1页
acm算法 计算几何基础_第2页
acm算法 计算几何基础_第3页
acm算法 计算几何基础_第4页
acm算法 计算几何基础_第5页
资源描述:

《acm算法 计算几何基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ACM程序设计计算机学院刘春英9/25/20211今天,你了吗?AC9/25/20212每周一星(6):老菜(donhau)9/25/20213第七讲计算几何初步(ComputationalGeometryBasic)9/25/20214第一单元线段属性9/25/202159/25/202169/25/202179/25/202189/25/202199/25/2021109/25/2021119/25/2021129/25/202113思考:1、传统的计算线段相交的方法是什么?2、传统方法和本方

2、法的区别是什么?9/25/202114特别提醒:以上介绍的线段的三个属性,是计算几何的基础,在很多方面都有应用,比如求凸包等等,请务必掌握!9/25/202115第二单元多边形面积和重心9/25/202116基本问题(1):给定一个简单多边形,求其面积。输入:多边形(顶点按逆时针顺序排列)输出:面积S9/25/202117思考如下图形:9/25/202118Anygoodidea?9/25/202119先讨论最简单的多边形——三角形9/25/202120三角形的面积:在解析几何里,△ABC的面积可

3、以通过如下方法求得:点坐标=>边长=>海伦公式=>面积9/25/202121思考:此方法的缺点:计算量大精度损失更好的方法?9/25/202122计算几何的方法:在计算几何里,我们知道,△ABC的面积就是“向量AB”和“向量AC”两个向量叉积的绝对值的一半。其正负表示三角形顶点是在右手系还是左手系。ABC成左手系,负面积ABC成右手系,正面积BCACBA9/25/202123大功告成:Area(A,B,C)=1/2*(↑AB)×(↑AC)=∣∣/2特别注意:以上得到是有向面积(有正负)!Xb–Xa

4、Yb–YaXc–XaYc–Ya9/25/202124凸多边形的三角形剖分很自然地,我们会想到以P1为扇面中心,连接P1Pi就得到N-2个三角形,由于凸性,保证这些三角形全在多边形内,那么,这个凸多边形的有向面积:A=sigma(Ai)(i=1…N-2)P1P2P3P4P5P6A1A2A3A49/25/202125凹多边形的面积?P1P4P3P29/25/202126依然成立!!!多边形面积公式:A=sigma(Ai)(i=1…N-2)结论:“有向面积”A比“面积”S其实更本质!9/25/20212

5、7任意点为扇心的三角形剖分:我们能把多边形分成N-2个三角形,为什么不能分成N个三角形呢?比如,以多边形内部的一个点为扇心,就可以把多边形剖分成N个三角形。P0P1P2P6P5P4P39/25/202128前面的三角剖分显然对于多边形内部任意一点都是合适的!我们可以得到:A=sigma(Ai)(i=1…N)即:A=sigma∣∣/2(i=1…N)Xi–X0Yi–Y0X(i+1)–X0Y(i+1)–Y09/25/202129能不能把扇心移到多边形以外呢?P0P1P2P3P49/25/202130既然

6、内外都可以,为什么不设P0为坐标原点呢?OP1P2P3P4现在的公式?9/25/202131简化的公式:A=sigma∣∣/2(i=1…N)XiYiX(i+1)Y(i+1)面积问题搞定!9/25/202132基本问题(2):给定一个简单多边形,求其重心。输入:多边形(顶点按逆时针顺序排列)输出:重心点C9/25/202133从三角形的重心谈起:三角形的重心是:(x1+x2+x3)/3,(y1+y2+y3)/3可以推广否?Sigma(xi)/N,sigma(yi)/N(i=1…N)???9/25/2

7、02134看看一个特例:.9/25/202135原因:错误的推广公式是“质点系重心公式”,即如果认为多边形的质量仅分布在其顶点上,且均匀分布,则这个公式是对的。但是,现在多边形的质量是均匀分布在其内部区域上的,也就是说,是与面积有关的!9/25/202136Solution:剖分成N个三角形,分别求出其重心和面积,这时可以想象,原来质量均匀分布在内部区域上,而现在质量仅仅分布在这N个重心点上(等假变换),这时候就可以利用刚才的质点系重心公式了。不过,要稍微改一改,改成加权平均数,因为质量不是均匀分

8、布的,每个质点代表其所在三角形,其质量就是该三角形的面积(有向面积!),——这就是权!9/25/202137公式:C=sigma(Ai*Ci)/A(i=1…N)Ci=Centroid(△OPiPi+1)=(O+↑Pi+↑Pi+1)C=sigma((↑Pi+↑Pi+1)(↑Pi×↑Pi+1))/(6A)9/25/202138全部搞定!9/25/202139第三单元凸包(ConvexHull)9/25/2021409/25/2021419/25/2021429/25/2021439/2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。