📅  最后修改于: 2023-12-03 15:32:05.863000             🧑  作者: Mango
在游戏开发、动画制作等场景中,我们经常会需要检测圆形是否相碰撞。以下是一个简单的Javascript圆碰撞实现,可以供程序员们参考。
为了检测两个圆是否碰撞,我们需要比较它们之间的距离和它们的半径之和。如果距离小于或等于半径之和,则说明圆相碰撞。
以下是一个实现圆碰撞检测的Javascript函数:
function circleCollision(c1, c2) {
//计算两个圆心之间的距离
const distance = Math.sqrt((c1.x - c2.x) ** 2 + (c1.y - c2.y) ** 2);
//如果距离小于或等于半径之和,则说明圆碰撞
if (distance <= c1.radius + c2.radius) {
return true;
}
//否则,两个圆不碰撞
return false;
}
该函数接收两个圆对象 c1
和c2
,它们都必须包含以下属性:
x
:圆心的x坐标y
:圆心的y坐标radius
:圆的半径如果圆碰撞,函数将返回 true
。否则,将返回 false
。
以下是一个演示圆碰撞检测的示例代码:
//创建两个圆
const circle1 = { x: 50, y: 50, radius: 30 };
const circle2 = { x: 100, y: 100, radius: 50 };
//检测两个圆是否碰撞
if (circleCollision(circle1, circle2)) {
console.log("圆碰撞!");
} else {
console.log("圆没有碰撞。");
}
以上代码将打印 圆碰撞!
,因为两个圆的距离小于它们的半径之和。
以上是一个简单的Javascript圆碰撞实现。希望这篇介绍可以帮助程序员们更好地理解和实现圆碰撞检测。