博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二维平面内的碰撞检测【二】
阅读量:6069 次
发布时间:2019-06-20

本文共 672 字,大约阅读时间需要 2 分钟。

这篇我们将讲解圆与矩形的碰撞;

圆与矩形的碰撞检测

通常在svg或者canvas中我们会这样表示一个圆: 圆心(cx,cy),半径r;

表示矩形:中心点坐标(0,0) width="250" height="250" x=-width/2 y=-height/2 平移(rectX,rectY)并以几何中心旋转任意角度

展示的矩形即几何中心点(rectX,rectY)width="250" height="250";

你可能会问,如果矩形被旋转了怎么办?

我们可以在矩形的中心点建立一个新的坐标系统。以宽平行方向为x轴方向,以高平行方向为Y轴方向

clipboard.png

得到在新的坐标系统中圆的坐标:(cx-rectX,cy-rectY)

在新坐标系统中计算圆中心点的投影即圆中心点的坐标。那么我们发现,

clipboard.png

图中L=r/Math.sqrt(r);

我们可以看到当两边投影 x 方向 小于等于width+L && y方向小于等于heigth/2 或者 x方向小于等于width/2 && y方向上小于等于 height+L的时候即碰撞

//(cx,cy) 矩形 width height 中心点(rectX,rectY)var L=r/Math.sqrt(r);if((Math.abs(cx-rectX)<= width/2+L && Math.abs(cy-rectY)<= height/2)||(Math.abs(cx-rectX)<= width/2 && Math.abs(cy-rectY)<= height/2+L)){//碰撞}else{//无碰撞}

转载地址:http://dafgx.baihongyu.com/

你可能感兴趣的文章
实用 | 从Apache Kafka到Apache Spark安全读取数据
查看>>
Oracle常用语句语法汇总
查看>>
保证系统性质相符 首推模型检验技术
查看>>
C++ 大端小端
查看>>
[WCF-Discovery]让服务自动发送上/下线通知[实例篇]
查看>>
ios编码规范(by raywenderlich团队,靠谱)
查看>>
Firefox 23.0新版浏览器的变化比较大,你如果经常捣鼓firefox的选项卡的人可能已经发现了,选项卡很多地方多有所改变。...
查看>>
【高质量代码】如何写出更高质量的C/C++代码(1):内存管理
查看>>
中国人工智能学会通讯——人类作为“情感机器”——效用函数、情绪和社会偏好...
查看>>
深拓移动运营商市场 博科的发力点是什么?
查看>>
Shodan跟威胁情报公司Recorded Future搞了一个恶意软件猎手 爬虫能扫描僵尸网络C&C服务器...
查看>>
性能优异 联想System x3250 M6助力中小企业腾飞
查看>>
只有程序员才了解的9个真相!
查看>>
《PIC微控制器项目设计:C语言》一2.6 修改控制流
查看>>
自动驾驶多种传感器相互制约 没那么容易遭到黑客攻击
查看>>
搞定大数据:AI和机器学习在数据处理与保护上的应用
查看>>
人工智能将进入能源生产领域
查看>>
以“场景化”接驳“数字化”,浪潮存储驱动三维智能产业
查看>>
消息中间件kafka与activemq、rabbitmq、zeromq、rocketmq的比较
查看>>
企业愿接受虚拟化 云计算最受关注
查看>>