- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
地理信息算法第二章
2.13 判断折线是否在多边形内 ? 只要判断折线的每条线段是否都在多边形内即可。设折 线有m条线段,多边形有n个顶点,则该算法的时间复杂度为 O(m×n)。 2.14 判断多边形是否在多边形内? 只要判断多边形的每条边是否都在多边形内即可。判断一 个有m个顶点的多边形是否在一个有n个顶点的多边形内复杂度为 O(m×n)。?? 2.15 判断矩形是否在多边形内 ? 将矩形转化为多边形,然后再判断是否在多边形内。? 2.16 判断圆是否在多边形内? 只要计算圆心到多边形的每条边的最短距离,如果该距离 大于等于圆半径则该圆在多边形内。计算圆心到多边形每条边最 短距离的算法在后文阐述。? 2.17 判断点是否在圆内? 计算圆心到该点的距离,如果小于等于半径则该点在圆内。? 2.18 判断线段、折线、矩形、多边形 是否在圆内? 因为圆是凸集,所以只要判断是否每个顶点都在 圆内即可。? 2.19 判断圆是否在圆内 ? 设两圆为O1,O2,半径分别为r1,?r2,要判断O2是否在O1 内。先比较r1,r2的大小,如果r1r2则O2不可能在O1内;否则如 果两圆心的距离大于r1?-?r2?,则O2不在O1内;否则O2在O1内。? 2.20 计算两条共线的线段的交点(2-1) 对于两条共线的线段,它们之间的位置关系有下图所示的 几种情况。图(a)中两条线段没有交点;图(b)和(d)中两条线段 有无穷焦点;图(c)中两条线段有一个交点。 设line1是两条线段中较长的一条,line2是较短的一条. (1)如果line1包含了line2的两个端点,则是图(d)的情况,两线 段有无穷交点; (2)如果line1只包含line2的一个端点,那么如果line1的某个端 点等于被line1包含的line2的那个端点,则是图(c)的情况,这时 两线段只有一个交点,否则就是图(b)的情况,两线段也是有无穷 的交点; (3)如果line1不包含line2的任何端点,则是图(a)的情况,这时两 线段没有交点。? 2.20 计算两条共线的线段的交点(2-2) L2 L1 (a) L1 L2 (b) L2 L1 (c) L1 L2 (d) 共线线段的位置关系 2.21 计算线段或直线与线段的交点(4-1) 设一条线段为L0=P1P2,另一条线段或直线为L1=Q1Q2?,要 计算的就是L0和L1的交点。步骤如下: 1.首先判断L0和L1是否相交(方法已在前文讨论过),如果 不相交则没有交点,否则说明L0和L1一定有交点,下面就将L0和L1 都看作直线来考虑。? 2.如果P1和P2横坐标相同,即L0平行于Y轴? a)若L1也平行于Y轴,? i.?若P1的纵坐标和Q1的纵坐标相同,说明L0和L1共线,假 如L1是直线的话他们有无穷的交点,假如L是线段的话可用“计 算两条共线线段的交点”的算法求他们的交点(该方法在前文 已讨论过); ii.?否则说明L0和L1平行,他们没有交点;? b)?若L1不平行于Y轴,则交点横坐标为P1的横坐标,代入 到L1的直线方程中可以计算出交点纵坐标;? ? 2.21 计算线段或直线与线段的交点(4-2) 3.如果P1和P2横坐标不同,但是Q1和Q2横坐标相同,即L1 平行于Y轴,则交点横坐标为Q1的横坐标,代入到L0的直线方程 中可以计算出交点纵坐标; 4.如果P1和P2纵坐标相同,即L0平行于X轴? a)?若L1也平行于X轴,? i.?若P1的横坐标和Q1的横坐标相同,说明L0和L1共线,假如L1是直线的话他们有无穷的交点,假如L1是线段的话可用计算两条共线线段的交点的算法求他们的交点(该方法在前文已讨论过); ii.?否则说明L0和L1平行,他们没有交点;? b)?若L1不平行于X轴,则交点纵坐标为P1的纵坐标,代入到L1的直线方程中可以计算出交点横坐标;? 5.如果P1和P2纵坐标不同,但是Q1和Q2纵坐标相同,即L1平行 于X轴,则交点纵坐标为Q1的纵坐标,代入到L0的直线 方程中可以计算出交点横坐标; 2.21 计算线段或直线与线段的交点(4-3) ? 6.剩下的情况就是L1和L0的斜率均存在且不为0 的情况? a)?计算出L0的斜率K0,L1的斜率K1;? b)?如果K1=K2
文档评论(0)