点、线段、凸多边形相交判断以及在游戏中的常见应用

本文详细介绍了在游戏开发中常见的几何相交判断方法,包括线段相交、顶点走向判断、路径导航、顶点与凸包相交、线段与凸包相交以及凸包与凸包相交的判断。这些理论和算法对于实现精确的碰撞检测和导航计算至关重要。

本文记录一些常见的相交判断方法,属于游戏开发中比较常见的几何应用。

目录

一、线段之间的相交判断:

二、顶点走向判断

三、路径导航

四、顶点与凸包相交计算

五、线段与凸包的相交计算

六、凸包与凸包的相交判断


一、线段之间的相交判断:

问题,如下图,如何判断线段AB和CD是否相交?


解答:线段之间的相交判断一般使用以下夹持法思路:
1、假如ABC保持现有位置,D可移动,那么穿透交叉的条件就是D在AB的另外一侧(异于C),且CD夹持于射线CA、CB之间
2、假如ACD保持现有位置,B可移动,那么穿透交叉的条件就是B在CD的另外一侧(异于A),且AB夹持于射线AD、AC之间
总结1、2,可以说成:
A、B两点分布于直线CD的两侧,C、D点分布于直线AB的两侧,形成互相夹持。
理清思路再去找相应的公式:
由于2D矢量的叉积是一个标量,上述1、2的夹持条件,可以由以下简单的叉积公式来体现:


Vcd.Cross(Vca) * Vcd.Cross(Vcb) < 0  && Vab.Cross(Vad) * Vab.Cross(Vac) < 0 

这里的<也可以是<=,那么将代表可以包含穿过顶点的临界情况。

二、顶点走向判断

在带有物理计算的游戏中,常常需要进行物体走向的判断,这个说起来也很简单,给出问题如下:
如下图,假设AB朝向代表了人物当前的朝向,人物处于顶点A位置,而此时希望A转向M,那么A该如何最快转向至面向M?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值