当前位置: 首页 > 开发杂谈 >

[Day15] 碰撞侦测 - 分离轴原理 SAT

今日目标

  • 实作SAT碰撞侦测

SAT的作法

回顾一下,AABB的作法是不管是甚麽形状,都把物件包进矩形的碰撞框里,但很明显的这会导致碰撞的「不精确」,既使是矩形,只要旋转,就会看到「异次元碰撞」。

SAT,分离轴原理的作法,从结果上,就是找出两物体的分离轴,只要找到一条,就代表两个物体是分开的。下面说明一下SAT的步骤。

  1. 也先从矩形开始思考,两个矩形,但这次旋转了45度。我们要先把八个顶点位置都找出来。
  2. 然後,使用向量的减法,算出各自四个边的向量,这个就会是把我们矩形包起来的边界。
  3. 接下来,找出垂直於各边界的向量,也就是法向量(可以使用点积找到)。
// 例如: E = (100, 82),依据点积则 E.N = 0
// 会找到两个向量,N = (-82, 100) or (82, -100)
  1. 以一条法向量为例,找出来个物体的各自点在该法向量的正投影,只要找到这个物体在该轴上的最大与最小的位置就好。会像下图中这样,可以看出来在这一轴上,两个物体的投影是没有重叠的,这标示找到分离轴了,没有碰撞。
    找出正投影
  2. 有两个矩形,八条边界,最多会需要迭代八次,找到在各自的投影有没有重叠。

AABB也是一种SAT?

仔细一下,昨天AABB的做法也是一种SAT,两个矩形的边界就是XY两轴,毕竟两个物体都「正正方方」的,然後所说的投影就是各自的X轴的min与max,Y轴的min与max。

MISSION FAILED!

实作过程中发现一些问题,在找顶点的时候就发生了问题,於是我直接拿昨天找到的网路文章看发甚麽问题,後来找到是选找的时候,我的参考点是世界座标的原点不是矩形的原点。

接着照上面的步骤,找出边界,找出法向量,迭代每个法向量找出有没有「不重叠」的正投影。

然後!出现了「异次元碰撞」,不管有没有碰撞,都是显示碰撞的状态,加上头有点昏(数学啊~我的天),时间已快到了,今天先休息吧。

参考

一样上传了今天的成果,但是结果是错误的。明天再战


相关文章:

  • Shopee店铺运营中要注意的三个方面
  • 跨境电商卖家短视频制作如何抓住消费者心理
  • 如果wish账户余额(支出能力)为零或负数,如何追加预算?
  • 跨境电商卖家提高用户下单率的正确方法
  • 【第18天】训练模型-InceptionResNetV2
  • 人脸辨识-day29
  • Day-7 Divide-and-Conquer-2 : 求解递回式
  • 亚马逊销售佣金计算规则
  • 如何通过TikTok打开销售新渠道?
  • Day12,YAML Engineer 初登板
  • 外贸人网络营销要不断增强自身的知识架构
  • 错误代码8541和90202的解决办法
  • 亚马逊欧洲站卖家怎么应对欧盟电商增值税变更?
  • 亚马逊卖家必知的四大流量入口
  • eBay爆款打造三步走
  • 亚马逊卖家教程入门:如何做好亚马逊?教你怎么做亚马逊
  • PayPal绑定国内手机卡的方法:国外PayPal怎么绑定国内手机号
  • Goolge play怎么更改地区下载Apps : 谷歌应用商店更改地区教程
  • WordPress 为当前文章在【分类】小工具中的所属分类添加current-cat类名
  • Pinterest的商业指南(信息图):为什么以及如何在在Pinterest上推广你的业务
  • Android让系统信任用户证书的方法
  • 一键脚本:Aria2+Aria2Ng+OneIndex | 自动上传OneDrive
  • PayPal国外买东西教程:银联卡(国内储蓄卡信用卡)怎么用PayPal买国外的东西更安全
  • VPS优惠信息:阿里云/限时活动/新用户1C2G1M/69元/年起
  • 301 重定向怎么做?301 重定向教程和方法
  • PayPal解决找回密码时无法检验身份问题
  • DNS是什么?DNS有什么用?为什么要用DNS解析域名
  • WooCommerce 带动顾客购物的十种方法
  • 国外VPS优惠码大全:
  • VPS优惠:搬瓦工香港VPS补货/G口/KVM/月付9.9美元