碰撞检测
碰撞检测:
1、圆形与矩形的碰撞检测
函数ComputeCollision,当相对距离小于圆形半径的时候为碰撞。
参数介绍(w:矩形的宽,h:矩形的高,r:圆形半径,rx:圆形中心与矩形中心相对坐标X,ry:圆形中心与矩形中心相对坐标Y)
function ComputeCollision(w, h, r, rx, ry) { var dx = Math.min(rx, w * 0.5); var dx1 = Math.max(dx, -w * 0.5); var dy = Math.min(ry, h * 0.5); var dy1 = Math.max(dy, -h * 0.5); return (dx1 - rx) * (dx1 - rx) + (dy1 - ry) * (dy1 - ry) <= r * r; }
2、圆形坐标中心位置和矩形坐标中心位置
圆形坐标指鼠标的位置
修正圆形的位置,让鼠标在圆心的中心位置
//圆心坐标 var radiusPosX = parseInt((event.clientX || event.x)); var radiusPosY = parseInt((event.clientY || event.y)); event = event || window.event; //让鼠标在圆心的位置 circle.style.left = parseInt(radiusPosX - radius) + "px"; circle.style.top = parseInt(radiusPosY - radius) + "px";
矩形的长宽
矩形的中心位置是(相对距左+宽度,相对距顶+高度)。
//矩形的长宽 var rectW = rect.clientWidth; var rectH = rect.clientHeight; //矩形中心坐标 var rectPosX = parseInt(rect.offsetLeft) + rectW / 2; var rectPosY = parseInt(rect.offsetTop) + rectH / 2;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现