地理信息系统基础算法(二)判断两线段是否相交
2015-11-29 20:47
351 查看
算法描述
![](https://img-blog.csdn.net/20151129204426516)
2. 代码实现
参考资料:地理信息系统算法基础_张宏p24-25
2. 代码实现
/// <summary> /// 判断线段ab与线段cd是否相交,如果相交返回ture /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <param name="c"></param> /// <param name="d"></param> /// <returns></returns> public static bool IsIntersection(Point a,Point b,Point c,Point d) { //AB = A + r(B-A), r 在[0,1] //CD = C + t(D-C),s 在[0,1] double r, s; double deno = (b.X - a.X) * (d.Y - c.Y) - (b.Y - a.Y) * (d.X - c.X); double mem1 = (a.Y - c.Y) * (d.X - c.X) - (a.X - c.X) * (d.Y - c.Y); double mem2 = (a.Y - c.Y) * (b.X - a.X) - (a.X - c.X) * (b.Y - a.Y); r = mem1 / deno; s = mem2 / deno; if (r > 1 || r < 0) return false; if (s > 1 || s < 0) return false; return true; }
参考资料:地理信息系统算法基础_张宏p24-25
相关文章推荐
- 变量的声明和定义有什么区别
- Ninja - chromium核心构建工具
- ubuntu远程控制其他电脑(window & linux)
- Apache搭建多个站点方法详解
- AndroidL ANR分析整理
- hpuoj 1725: 感恩节KK专场——特殊的比赛日期 【素数判断】【校赛】
- openstack之neutron代码分析---(1)neutron初始化流程
- xcode插件
- 【String】引用计数实现String
- 11月—快乐英语
- Java.IO note
- 持续集成是什么?
- share出现的一些问题与解决方法——韩钊
- css之自动换行
- Educational Codeforces Round 2 C. Make Palindrome 贪心
- HDU 5351 MZL's Border (多校联合第5场1009)
- 我用u盘安装centos操作系统时遇到的问题
- 【Eclipse for IAR】使用 Eclipse 编写 IAR 程序
- python操作mongodb数据库
- 【LabVIEW花样翻新】使用子面板技术进行动态的界面加载