GIS算法的计算几何基础3解析课件.ppt
《GIS算法的计算几何基础3解析课件.ppt》由会员分享,可在线阅读,更多相关《GIS算法的计算几何基础3解析课件.ppt(34页珍藏版)》请在三一办公上搜索。
1、GIS算法的计算几何基础(3),河南大学环境与规划学院,地理信息系统算法基础第2章,GIS算法的计算几何基础(3)河南大学环境与规划学院地理信,2,本讲内容,1.判断点是否在圆内 2.判断线段、折线、矩形、多边形是否在圆内 3.判断圆是否在圆内 4.计算两条共线的线段的交点5.计算线段或直线与线段的交点6求线段或直线与圆的交点 7.中心点的计算 8.过点作垂线9.作平行线10.过点作平行线 11.线段延长,12.三点画圆13.线段打断 14.前方交会 15.距离交会 16.极坐标作点,2本讲内容1.判断点是否在圆内 12.三点画圆,3,1.判断点是否在圆内,计算圆心到该点的距离,如果小于或等于
2、半径则该点在圆内。,伪代码?,31.判断点是否在圆内 计算圆心到该点的距离,如果小于或等于,4,2.判断线段、折线、矩形、多边形是否在圆内,圆是凸集,所以只要判断是否每个顶点都在圆内即可。,伪代码?,42.判断线段、折线、矩形、多边形是否在圆内 圆是凸集,所以,5,3.判断圆是否在圆内,设两圆为O1、O2半径分别为r1、r2,要判断O2是否在O1内。先比较r1、r2的大小如果r1r2,则O2不可能在O1内如果两圆心的距离大于r1-r2,则 O2不在O1内反之O2在O1内。,伪代码?,53.判断圆是否在圆内 设两圆为O1、O2半径分别为r1、r,6,4.计算两条共线的线段的交点,设L1是两条线段
3、中较长的一条,L2是较短的一条如果L1包含了 L2的两个端点,则是图 (d)的情况,两线段有无穷交点如果L1只包含L2的一个端点,那么如果L1的某个端点等于被L1包含的 L2的那个端点,则是图 (c)的情况,这时两线段只有一个交点否则就是图 (b)的情况,两线段也是有无穷的交点;如果L1不包含L2的任何端点,则是图 (a)的情况,这时两线段没有交点。,伪代码?,64.计算两条共线的线段的交点 设L1是两条线段中较长的一条,7,5.计算线段或直线与线段的交点,设一条线段为L0 = P1P2,另一条线段或直线为L1 = Q1Q2,要计算的就是 L0和L1的交点。第一步:判断L0和L1是否相交,如果
4、不相交则没有交点,否则L0和L1一定有交点,下面就将L0和L1都看作直线来考虑。第二步:如果P1和P2横坐标相同,即L0平行于y轴。,75.计算线段或直线与线段的交点 设一条线段为L0 = P1,第三步:如果P1和P2横坐标不同,但是Q1和Q2横坐标相同,即L1平行于y轴,则交点横坐标为Q1的横坐标,代入到L0的直线方程中可以计算出交点纵坐标。,8,5.计算线段或直线与线段的交点,L1,L0,第三步:如果P1和P2横坐标不同,但是Q1和Q2横坐标相同,,9,5.计算线段或直线与线段的交点,第四步:如果P1和P2纵坐标相同,即L0平行于x轴。,L0,L1,L0,L1,L0,L1,95.计算线段或
5、直线与线段的交点第四步:如果P1和P2纵坐标,10,5.计算线段或直线与线段的交点,第五步:如果P1和P2纵坐标不同,但是Q1和Q2纵坐标相同,即L1平行于x轴,则交点纵坐标为Q1的纵坐标,代入到L0的直线方程中可以计算出交点横坐标。,L1,L0,105.计算线段或直线与线段的交点第五步:如果P1和P2纵坐,11,5.计算线段或直线与线段的交点,第六步:剩下的情况就是L1和L0的斜率均存在且不为零的情况。计算出L0的斜率K0,L1的斜率K1;如果K1=K2,则有两种情况:第一种情况:如果Q1在L0上,则说明L0和L1共线,假如L1是直线,则有无穷交点,假如L1是线段,可用“计算两条共线线段的交
6、点”的算法求交点;第二种情况:如果Q1不在 L0上,则说明L0和L1平行,则没有交点。联立两直线的方程组可以解出交点来。,115.计算线段或直线与线段的交点第六步:剩下的情况就是L1,12,5.计算线段或直线与线段的交点,这个算法并不复杂,但是要分情况讨论清楚,尤其是当两条线段共线的情况需要单独考虑,所以在前文将求两条共线线段的算法单独写出来。另外,一开始就先利用矢量叉乘判断线段与线段(或直线)是否相交,如果结果是相交,那么在后面就可以将线段全部看作直线来考虑。需要注意的是,我们可以将直线或线段方程改写为ax + by + c = 0的形式,这样一来上述过程的部分步骤可以合并,缩短了代码长度,
7、但是由于先要求出参数,这种算法将花费更多的时间。,伪代码?,125.计算线段或直线与线段的交点这个算法并不复杂,但是要分,13,6.求线段或直线与圆的交点,设圆心为O,圆半径为r,直线(或线段)L上的两点为P1,P2。第一步:如果L是线段且P1、P2都包含在圆O内,则没有交点;否则进行下一步。第二步:如果L平行于y轴。计算圆心到L的距离d;如果dr,则L和圆没有交点;利用勾股定理,可以求出两交点坐标,但要注意考虑L和圆的相切情况。,136.求线段或直线与圆的交点 设圆心为O,圆半径为r,直线,14,6.求线段或直线与圆的交点,第三步:如果L平行于x轴,做法与L平行于y轴的情况类似。第四步:如果



- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GIS 算法 计算 几何 基础 解析 课件

链接地址:https://www.31ppt.com/p-1284916.html