如何确定圆与各种障碍物之间的像素距离

时间:2018-05-14 06:43:54

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

所以我在pygame中创建了一个圆形作为我的主角,我希望找到它的两侧和各种周围障碍物之间的最短距离。你可以在图片中看到我的意思。我有一个左象限和一个右象限,我想看看这些象限中存在什么。无论像素最接近圆圈的障碍是什么,该像素计数变为左右值(即,如果在右象限中最近的障碍物是40像素,右边= 40)。我还有一个前置值,它将直接在圆圈前扫描。

我已经看到了寻找与圆形碰撞的事情(在整个物体周围创造了一个圆形场)我也看到了使用毕达哥拉斯定理来寻找距离的东西,但是我&# 39;我不确定如何在更多的聚光灯下解决这个问题。范围,如果这是有道理的。

任何有关如何解决这个问题的建议都将非常感谢!总体目标是让圆圈绕过这些障碍物自动移动,因此我希望它能够扫描各个区域以确定如何在空间中移动。

整个空间用墙围住,所有障碍物都随机摆放在墙内。

circle moving

1 个答案:

答案 0 :(得分:1)

到圆的距离与到中心的距离减去半径相同。

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

根据区域的不同,最短距离是轴对齐(从一侧到点)或倾斜(从一个角到点),公式很容易。

enter image description here

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