笔记----圆和矩形碰撞检测

 

// f:矩形
// // f_rotation 矩形旋转角度
// c: 圆形 bool collision( float f_x, float f_y, float f_width, float f_height, float f_rotation, float c_x, float c_y, float c_radius) { float sint, cost; float w, h, rx, ry, r; cost = Math.cos(f_rotation); sint = Math.sin(f_rotation); w = f_width; h = f_height; r = c_radius; rx = (c_x - f_x) * cost + (c_y - f_y) * sint; ry = -(c_x - f_x) * sint + (c_y - f_y) * cost; float dx = Math.min(rx, w*0.5f); dx = Math.max(dx, -w*0.5f); float dy = Math.min(ry, h*0.5f); dy = Math.max(dy, -h*0.5f); return (rx - dx)*(rx - dx) + (ry - dy)*(ry - dy) <= r*r; }

 

转载于:https://www.cnblogs.com/wodehao0808/p/9445244.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值