“学习笔记”之《算法导论》----第七部分----算法问题选编----第三十三章----计算几何学

本人大四即将结束,于2018年12月18日购《算法导论》这本书,慢慢看,第一阶段先主要理解各个章节说的算法都是什么意思,书上的课后习题先不做,用得上什么算法我再详细学习。这是官方课后答案的链接

放在开头:没有好的算法,坏的算法之说,重点是针对不同的情况,针对不同的数据,针对不同的需求,去选择算法,改良算法。我的数学功底不强,太难的公式我看不懂,太高深的思想我理解不了,我主要以应用为主,不以解释数学公式为主。

几何学这个东西内容太多了。本章就是简单介绍了3个问题,以此揭开计算机几何学算法和技术这神秘面纱的一角。

叉积

叉积的计算是线段方法的核心。

两个向量P1,P2。P1*P2如果是正值,那么对于原点(0,0)来说,p1位于p2的顺时针方向,反之位于逆时针方向。

判断两个线段是否相交:

1、每条线段都跨越了包含另一条线段的直线。

2、一条线段的某个端点落在另一条线段上。

程序很简单,运用的是叉积的有关性质。

确定任意一对线段是否相交

这是通过一种扫线的方法。从最左边的线段开始往右扫,每个线段的端点是个“事件点”,在每个事件点上进行排序,看看在事件点上,哪个线段更高,当然了,没有被扫线扫到的点就不被考虑。

如果在某两个事件点上,某两个线段的排序颠倒了,那么这两个线段肯定相交了。

寻找凸包 

目的是找到散点中最外侧的几个顶点,能构成一个包,把所有的点包起来。

有两种方法:

Graham扫描法、Jarvis步进法。两种方法都很容易懂。

Graham方法是先把当前的坐标系转化成极坐标系。并且以纵坐标最小中的最左面的点设为原点。然后用叉积的相关性质寻找凸包的顶点。

Jarvis方法是找相对小的极角的一种方法。

寻找最近点对

最近点对问题可以应用于交通控制等系统中。为检测出潜在的碰撞事故,在空中或海洋交通控制系统中,需要识别出两个距离最近的交通工具。

然而这个算法我并没有看。。。懂。。。清一色的文字信息,没个清晰的图。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Naruto

你的鼓励是我的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值