ACM课件lecture-计算几何基础.ppt_第1页
ACM课件lecture-计算几何基础.ppt_第2页
ACM课件lecture-计算几何基础.ppt_第3页
ACM课件lecture-计算几何基础.ppt_第4页
ACM课件lecture-计算几何基础.ppt_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ACM程序设计 杭州电子科技大学刘春英acm 2020 2 15 2 今天 你了吗 AC 2020 2 15 3 每周一星 4 07053410陈晟 2020 2 15 4 第五讲 计算几何初步 ComputationalGeometryBasic 2020 2 15 5 第一单元 线段属性 2020 2 15 6 2020 2 15 7 2020 2 15 8 2020 2 15 9 2020 2 15 10 2020 2 15 11 2020 2 15 12 2020 2 15 13 2020 2 15 14 思考 1 传统的计算线段相交的方法是什么 2 传统方法和本方法的区别是什么 2020 2 15 15 特别提醒 以上介绍的线段的三个属性 是计算几何的基础 在很多方面都有应用 比如求凸包等等 请务必掌握 2020 2 15 16 第二单元 多边形面积和重心 2020 2 15 17 基本问题 1 给定一个简单多边形 求其面积 输入 多边形 顶点按逆时针顺序排列 输出 面积S 2020 2 15 18 思考如下图形 2020 2 15 19 Anygoodidea 2020 2 15 20 先看最简单的多边形 三角形 2020 2 15 21 三角形的面积 在解析几何里 ABC的面积可以通过如下方法求得 点坐标 边长 海伦公式 面积 2020 2 15 22 思考 此方法的缺点 计算量大 精度损失 更好的方法 2020 2 15 23 计算几何的方法 在计算几何里 我们知道 ABC的面积就是 向量AB 和 向量AC 两个向量叉积的绝对值的一半 其正负表示三角形顶点是在右手系还是左手系 ABC成左手系 负面积 ABC成右手系 正面积 2020 2 15 24 大功告成 Area A B C 1 2 AB AC 2特别注意 以上得到是有向面积 有正负 Xb XaYb Ya Xc XaYc Ya 2020 2 15 25 凸多边形的三角形剖分 很自然地 我们会想到以P1为扇面中心 连接P1Pi就得到N 2个三角形 由于凸性 保证这些三角形全在多边形内 那么 这个凸多边形的有向面积 A sigma Ai i 1 N 2 2020 2 15 26 凹多边形的面积 2020 2 15 27 依然成立 多边形面积公式 A sigma Ai i 1 N 2 结论 有向面积 A比 面积 S其实更本质 2020 2 15 28 任意点为扇心的三角形剖分 我们能把多边形分成N 2个三角形 为什么不能分成N个三角形呢 比如 以多边形内部的一个点为扇心 就可以把多边形剖分成N个三角形 P0 P1 P2 P6 P5 P4 P3 2020 2 15 29 前面的三角剖分显然对于多边形内部任意一点都是合适的 我们可以得到 A sigma Ai i 1 N 即 A sigma 2 i 1 N Xi X0Yi Y0 X i 1 X0Y i 1 Y0 2020 2 15 30 能否把扇心移到多边形以外呢 2020 2 15 31 既然内外都可以 为什么不设P0为坐标原点呢 现在的公式 2020 2 15 32 简化的公式 A sigma 2 i 1 N XiYi X i 1 Y i 1 面积问题搞定 2020 2 15 33 基本问题 2 给定一个简单多边形 求其重心 输入 多边形 顶点按逆时针顺序排列 输出 重心点C 2020 2 15 34 从三角形的重心谈起 三角形的重心是 x1 x2 x3 3 y1 y2 y3 3 可以推广否 Sigma xi N sigma yi N i 1 N 2020 2 15 35 看看一个特例 2020 2 15 36 原因 错误的推广公式是 质点系重心公式 即如果认为多边形的质量仅分布在其顶点上 且均匀分布 则这个公式是对的 但是 现在多边形的质量是均匀分布在其内部区域上的 也就是说 是与面积有关的 2020 2 15 37 Solution 剖分成N个三角形 分别求出其重心和面积 这时可以想象 原来质量均匀分布在内部区域上 而现在质量仅仅分布在这N个重心点上 等假变换 这时候就可以利用刚才的质点系重心公式了 不过 要稍微改一改 改成加权平均数 因为质量不是均匀分布的 每个质点代表其所在三角形 其质量就是该三角形的面积 有向面积 这就是权 2020 2 15 38 公式 C sigma Ai Ci A i 1 N Ci Centroid OPiPi 1 O Pi Pi 1 3C sigma Pi Pi 1 Pi Pi 1 6A 全部搞定 2020 2 15 40 第三单元 凸包 ConvexHull 2020 2 15 41 2020 2 15 42 2020 2 15 43 2020 2 15 44 2020 2 15 45 2020 2 15 46 2020 2 15 47 2020 2 15 48 2020 2 15 49 2020 2 15 50 2020 2 15 51 2020 2 15 52 2020 2 15 53 2020 2 15 54 2020 2 15 55 2020 2 15 56 2020 2 15 57 2020 2 15 58 2020 2 15 59 2020 2 15 60 2020 2 15 61 2020 2 15 62 2020 2 15 63 2020 2 15 64 2020 2 15 65 2020 2 15 66 2020 2 15 67 2020 2 15 68 凸包模板 xiaoxia版 include include includetypedefstruct doublex doubley POINT POINTresult 102 保存凸包上的点POINTa 102 intn top doubleDistance POINTp1 POINTp2 两点间的距离 returnsqrt p1 x p2 x p1 x p2 x p1 y p2 y p1 y p2 y doubleMultiply POINTp1 POINTp2 POINTp3 叉积 return p2 x p1 x p3 y p1 y p2 y p1 y p3 x p1 x intCompare constvoid p1 constvoid p2 POINT p3 p4 doublem p3 POINT p1 p4 POINT p2 m Multiply a 0 p3 p4 if m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论