【问题标题】:How to determine the distance in pixels between a circle and various obstacles如何确定圆与各种障碍物之间的像素距离
【发布时间】:2018-05-14 06:43:53
【问题描述】:

所以我在 pygame 中创建了一个圆圈作为我的主角,我正在寻找它的两侧与周围各种障碍物之间的最短距离。你可以在图片中看到我的意思。我有一个左象限和一个右象限,我想看看这些象限中存在什么。无论在圆上最接近的障碍物像素是什么,该像素数都成为左右值(即,如果在右象限中最近的障碍物距离 40 像素,则右 = 40)。我还有一个front值,就是直接在圆圈前面扫描东西。

我已经看到了寻找与圆碰撞的东西(在整个对象周围创建一个圆形场),我还看到了使用勾股定理来寻找距离的东西,但我不确定如何如果有意义的话,在更“聚焦”的范围内解决它。

任何有关如何解决此问题的建议将不胜感激!总体目标是让圆圈通过避开这些障碍物自动绕过这些障碍物,因此我希望它在各个区域进行扫描以确定如何在空间中移动。

整个空间被一堵墙围起来,所有的障碍物都是随机放置在墙内的方块。

【问题讨论】:

  • 请考虑添加代码示例,或修改您在此问题中发布的示例。就目前而言,它的格式和范围使我们很难为您提供帮助;这是一个great resource,可以帮助您开始。祝你的代码好运!
  • 我认为this answer 和其他人也会对您有所帮助。

标签: python python-2.7 pygame geometry collision-detection


【解决方案1】:

到圆的距离等于到圆心的距离减去半径。

现在,通过考虑由边的支撑线定义的九个区域来找到从矩形到点的距离。

根据区域,最短距离是轴对齐(从一侧到点)或倾斜(从角到点),公式很简单。

对于矩形孔或内角的讨论更简单。

【讨论】:

  • 但是你如何找到一个圆到一个物体的距离,而不是一个物体到一个圆的距离?
  • @MandyLB:是一样的。
猜你喜欢
  • 1970-01-01
  • 2019-01-31
  • 1970-01-01
  • 1970-01-01
  • 2019-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-07
相关资源
最近更新 更多