我正在编写一个代码,在那里我的世界充满了各种障碍(矩形)。我的机器人是一个圆,它随机地起源于世界上的任何地方。我假设它的头上有一个距离传感器,并且想要获得最近的障碍物/边界墙之间的距离,该距离在其直线上。

我使用0到360度之间的随机方向来定位机器人,并使用正弦和余弦方向将机器人移至相同的方向。但是,如何获得沿该方向的任何障碍物或边界墙之间的距离?它应该能够告诉我它在视野中遇到的第一个对象的距离,该距离应为0到360度。

请给我一个逻辑上的提示如何遇到这个问题?

谢谢

最佳答案

假设您知道角度,机器人的位置以及所有障碍物的位置,则可以具有以下功能:


如果角度小于90或大于270,则将x坐标增加1,否则将减少1
您从当前的x坐标直到世界的边缘(我不知道您如何实现世界)进行for循环,扫描位置(x,x * tan(angle))上的任何障碍物,递增或递减按照上面的步骤
您遇到的第一个障碍,返回sqrt(x ^ 2 +(x * tan(angle))^ 2)-那只是勾股定理

关于java - 如何在不知道障碍物位置的情况下确定距障碍物的距离,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25729444/

10-13 02:34