2D物理引擎--谁碰了我的奶酪

人生犹如“迷宫”,每个人都在其中寻找各自的“奶酪”——稳定的工作、身心的健康、和谐的人际关系、甜蜜美满的爱情,或是令人充满想象的财富…… 那么,你是否正在享受你的奶酪呢?

以上是《谁碰了我的奶酪》的内容简介, 在现实生活中的你,要如何得知谁碰了你的奶酪呢?

现在你买了一个大奶酪,然后你把它平放在桌子上,就在此时你发现了一只小强向着奶酪匍匐着,你的表情大概是这样的

image

而小强的走位大概是这样的

iamge

然后它舔了奶酪一口。接着你毫不犹豫的抄起拖鞋,给予小强致命一击。

现在问题来了,怎么用坐标系检测图形重叠——怎么知道小强舔♂了♀奶酪

image

我们把小强当成圆形,奶酪当成圆形,以桌面当成坐标系,构建一个简单的数学坐标模型~

image

两个圆是否重叠的判断很简单,小学生都会那就是两圆心距离小于两圆半径之和既为重叠,也就是小强舔到你的奶酪。

我们用代码表示一下


如果 小强的圆心与奶酪的圆心 的 距离 小于 小强的半径 与 奶酪的半径 和
    既 小强舔到奶酪
否则 
    小强没有舔到奶酪

js 伪码表示


function collide(item1, item2){ 
    return item.center().minus(item2.center()).length() < item1.radius() + item2.radius();
}

// item 的 center 属性是一个向量坐标

上诉问题放到 2D 物理引擎中,便是图形碰撞的问题了。在 2D 物理引擎中,最重要的一个环节就是碰撞了。

然后图形碰撞前还得划分图形的形状,需要的参数是图形的位置,大小,参与运算的坐标系类型(大多为笛卡尔坐标系,然后还有极坐标系)。

下一节我们将会讲一讲怎么进行碰撞反应~


相关图文来源:

风骚的走位,精简的装备,自信的表情,饱满的步伐,还有那鲜艳的红领巾!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值