我正在尝试创建一个函数来检查圆与圆扇形的周长之间是否存在碰撞/相交。
我将详细解释我的问题:
1.我有一个由圆心(x1,y1),半径(r1)和角度(m)定义的圆弧,告诉我圆弧的起点和终点。
2.另一方面,我有一个由中心点(x2,y2),半径(r2)定义的圆。
3.我正在用HTML5画布创建一个小游戏,其中两个几何形状都可以自由移动。
4.问题是我想知道这两个(绿色圆圈部分和绿色圆圈)是否相互碰撞。
我当前的代码非常基础(因为我无法提出可以有效检查冲突的内容)。它仅检查定义该圆扇形的圆与另一个圆之间的碰撞:
this.crashWith = function(otherobj) {
// "this" is the circle
// "otherobj" is the circle sector
var dx = this.x - otherobj.x;
var dy = this.y - otherobj.y;
var distance = Math.sqrt(dx * dx + dy * dy);
var crash = false;
if (distance < this.radius +otherobj.radius) {
crash = true;
}
return crash;
}
注:圆扇形(绿色)具有线宽(如图中所示),并且角度m发生变化(因为圆扇形围绕中心旋转)。
我认为正确的解决方案是知道圆扇形不变(只是旋转)而可以计算碰撞的东西。