gpt4 book ai didi

c++ - 弧形二维碰撞检测

转载 作者:行者123 更新时间:2023-11-30 02:04:39 26 4
gpt4 key购买 nike

我需要通过圆弧实现二维碰撞检测。我有玩家(黑点)和敌人(红点)。玩家可以向任何方向攻击,他的命中范围是120度(绿线显示)和一定半径(黑色曲线)。

My art

如何实现这种检测?

我已经编写了计算玩家和敌人之间角度的代码,但我无法理解如何使用玩家的方向 vector 来检查它是否在弧内。

最佳答案

计算与敌人的角度和距离。使用它来检查它们是否在范围内。

如果正方形所在的区域使用笛卡尔坐标,则问题很简单,因此通过转换为径向坐标,这个问题也变得简单。

有新信息

  • vector A 是玩家的方向 vector 。
  • 计算从敌人到玩家的 vector B。

检查 vector B的长度是否太长。

然后 vector 之间的角度由下式给出:acos(|A.B|/|A||B|)

如果角度小于 60 度(120 度的一半),则敌人在射程内。

关于c++ - 弧形二维碰撞检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10372711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com