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

本文记录一些常见的相交判断方法,属于游戏开发中比较常见的几何应用。目录一、线段之间的相交判断:二、顶点走向判断三、路径导航四、顶点与凸包相交计算五、线段与凸包的相交计算六、凸包与凸包的相交判断一、线段之间的相交判断:问题,如下图,如何判断线段AB和CD是否相交?解答:线段之间的相交判断一般使用以下夹持法思路:1、假如ABC保持现有位置,D可移动,那么穿透...
摘要由CSDN通过智能技术生成

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

目录

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

二、顶点走向判断

三、路径导航

四、顶点与凸包相交计算

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

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


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

问题,如下图,如何判断线段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 

这里的<也可以是<=࿰

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值