ToLeft 测试与计算凸包问题

本文介绍了计算几何中的ToLeft测试,用于判断点是否在三角形内,并探讨了极点法和极边法在求解凸包问题中的应用。通过计算有向面积和应用右手定理,实现LEFT测试,进而实现不同算法来找到凸包。
摘要由CSDN通过智能技术生成

计算几何中的ToLeft测试

判断点是否在三角形内

求解计算几何中的凸包问题时,使用的比较简单,但是复杂度比较高的算法中有一种算法叫做极点法,基本思想是从所有的点中去除所有的不是凸包边上的点.

从所有的剩余的点中,选出三个点,然后再在剩余的点集中,判断是否在三角形的内部,如果在内部,则去除这个点,说明它不是凸包的结果;否则,就暂时保留这个点,说明它可能是凸包边上的点.如下图所示:点a在三角形的内部,肯定不是凸包上的点,点b暂时可能是凸包上的点.

这里写图片描述

ToLeft测试

不难从上面的图中看出,若把三角形的三个边都设定为逆时针方向,那么点a在三个向量边的左侧.b在其中两条边的左侧,但是在p和q那条边的右侧.

由此可以判断,当一个点在三角形三条逆时针边的左侧时,点必定在三角形的内部,不是凸包边上的解,否则不是在三角形内部.这就是所谓的ToLeft测试.

三角形的有向面积

实现ToLeft测试方法也有很多,最经典的是使用求解矩阵行列式求解有向面积的方式.

设两个点p和q,测试点s是在pq连线的左侧还是右侧,如下图所示.

这里写图片描述

让p, q,s构成一个三角形,然后各个边,边的方向与pq的方向一致,这个三角形的有向面积计算如下:

2S=p[x]q[x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值