Javascript - 如何识别圆弧中的圆弧碰撞

时间:2016-09-29 22:50:06

标签: javascript canvas trigonometry

我尝试在javascript中编写一个小游戏并且存在问题:我不知道如何识别食者圈中的空弧以增加分数。

我在食者圈和球之间添加碰撞,如果球触及食者的“身体”,它将显示游戏结束(已完成)并且如果球触及食者的“嘴”,则必须增加分数。

以下是小游戏的代码:http://jsbin.com/gujove/edit?html,css,js,output

如果您对如何操作有任何想法,请随时告诉我。

感谢。

1 个答案:

答案 0 :(得分:2)

假设您知道以下内容:

  • 您知道食者中心的坐标和半径。 (参考平面的中心)
  • 您可以计算弧的末端坐标(centerY + sinA),(centerX + cosA)等。
  • 你知道球的中心和半径。

然后:

  • 你必须计算球的中心和任何弧端之间的距离是否小于或等于球的半径。(如果距离较小,则意味着弧角在里面球,因此你已经击中了

  • 除此之外,如果你考虑到中心,那么从食者中心到球中心绘制的线的角度应该在绘制到弧线两侧的线的角度之间。你的食客作为飞机的参考点。 (如果角度介于两者之间且第一个条件成立,则表示您正在传递空白区域。