计算几何学解析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 计算几何学 本章主要内容 8.1 几何基本知识 8.2 基本算法 8.3 凸包 8.4 实例研究 8.1 几何基本知识 8.1.1 矢量的概念 8.1.2 矢量加减法 8.1.3 矢量叉积 8.1.4 折线段的拐向判断 8.1.5 判断点是否在线段上 8.1.6 跨立试验与判断两线段是否相交 8.1.7 整数点与Pick定理 8.1.1 矢量的概念 1、 线段 8.1.2 矢量加减法 设二维矢量P x1, y1 ,Q x2 , y2 。矢量加法定义为: P + Q x1 + x2 , y1 + y2 。矢量加法的几何意义是以向量P、Q为邻边的平行四边形的对角线 8.1.3 矢量叉积 2、叉积的性质: 8.1.3 矢量叉积 8.1.4 折线段的拐向判断 折线段的拐向判断:左转、右转: 8.1.5 判断点是否在线段上 判断点C在线段AB上的依据是: 点C在线段AB所在的直线L上, C 在以A、B为对角顶点的矩形内。 点在线段上的条件 ON_SEGMENT算法描述: C点在直线AB上:AB × AC 0 C点不在线段AB的延长线或反向延长线上: min xA,xB xC 且 xC max xA,xB 且 min yA,yB yC 且 yC max yA,yB 8.1.6 跨立试验与判断两线段是否相交 1、线段相交 设有4点:P1、P2、 Q1 、 Q2,问线段P1P2与 Q1Q2是否相交? 8.1.6 跨立试验与判断两线段是否相交 2、快速排斥试验 设以线段P1P2为对角线的矩形为R,以线段 Q1Q2 为对角线的矩形为T,如果R和T不相交,显然两线段不会相交。 8.1.6 跨立试验与判断两线段是否相交 3、跨立试验 8.1.6 跨立试验与判断两线段是否相交 4、跨立试验的叉积表示 8.1.6 跨立试验与判断两线段是否相交 8.1.7 整数点与Pick定理 1、线段上格点问题 格点:就是平面上坐标为整数的点。 问题:平面中一条线段上有多少个整数点? 8.1.7 整数点与Pick定理 3、多边形中的格点问题 8.1.7 整数点与Pick定理 4、Pick定理:设以整数点为顶点的多边形的面积为S,多边形内部的整数点数为N,多边形边界上的整数点数为L,则 S L/2 + N-1。 8.1.7 整数点与Pick定理 5、计算 多边形边上的网格点个数: int OnEdge int n,POINT * p int i,ret 0; for i 0;i n;i++ ret+ gcd fabs p[i].x-p[ i+1 %n].x ,fabs p[i].y-p[ i+1 %n].y ; return ret; 多边形内部的网格点个数由下列程序段给出: int InSide int n,POINT* p int i, area 0;// area是面积 for i 0;i n;i++ area+ p[ i+1 %n].y* p[i].x-p[ i+2 %n].x ; return fabs area -OnEdge n,p /2+1; 8.2 基本算法 1.判断线段和直线是否相交 2.判断矩形是否包含点 3.判断线段、折线、多边形是否在矩形中 4.判断矩形M1是否在矩形M2中 5.判断圆是否在矩形中 6.判断点是否在多边形中 7.判断线段是否在多边形内 8.判断折线是否在多边形内 9.判断多边形是否在多边形内 10.判断矩形是否在多边形内 11.判断圆是否在多边形内 12.判断点是否在圆内 13.判断线段、折线、矩形、多边形是否在圆内 14.判断圆是否在圆内 线段和直线是否相交 如果线段P1P2和直线Q1Q2相交,则P1P2跨立Q1Q2,即: (Q1P1×Q1Q2 ) (Q1Q2 × Q1P2 )≥ 0。 判断点是否在多边形中 给定多边形p0p1p2…pn-1及点p,问p是否在该多边形中? 点在多边形中判断方法 随机取一个足够远的点P1,以点P为始点、P1为终点,作射线L,由于多边形是有界的,所以射线L的终点一定在多边形外,考虑沿着L从无穷远处开始自左向右移动,遇到和多边形的第一个交点的时候,进入到了多边形的内部,遇到第二个交点的时候,离开了多边形,所以很容易看出当L和多边形的交点数目count是奇数的时候,P在多边形内;count是偶数时P在多边形外。 特殊情况 情况1:点P本身在多边形的边上,易判 情况2:射线上有多边形的顶点 多边形的顶点在L上; 多边形一个顶点是L的端点。 L和多边形的一条边重合。 情况2处理方式 随机取一个足够远的点P1,以点P为始点、P1为

文档评论(0)

1192212 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档