发布网友 发布时间:2024-10-23 16:57
共1个回答
热心网友 时间:2024-11-06 01:46
这实际上就是计算两个圆的圆心距离如果等于两个圆的半径之和,就说明两个圆是处在接触状态的。
具体到程序中,由于涉及浮点运算,为了防止误差,应该以圆心距离小于等于半径和就视为触碰。
所以问题就简化为计算平面中两点之间直线距离了,这是初中的数学了:
假定移动球的圆心坐标是(x1, y1),半径为r1,固定球的圆心坐标为(x2, y2),半径为r2,则圆心距离d为
var d = Math.sqrt(Math.pow(x1-x2, 2) + Math.pow(y1-y2, 2));
if(d<=r1+r2){
//两球触碰
}else{
//两球未触碰
}