【发布时间】:2022-07-09 11:05:23
【问题描述】:
想象一个弓箭手至少需要在 3m 之外才能射中他的目标,但他的距离不能超过 10m。所以他必须在这个半径内找到一个有效的位置(当然是在 3d 中)。
所以,我需要的是一种方法,它可以返回我的导航网格上最近(可到达)的点,并且在半径内具有清晰的视线。
我一直在考虑始终使用圆边作为计算的起点。因为这应该始终是最近的点。但这在此示例中不起作用:
由于圆边没有直接的视线,我不能把它作为起点。
我也在考虑只选择随机点(如 5000 个),检查它们是否有视线并检查与弓箭手的距离。但这当然是一个糟糕的解决方案。
我怎样才能找到这个神奇的点?
(我不需要脚本,只需要一个想法:D)
编辑: 不需要有到目标的有效路径。如果例如一条河流挡住了弓箭手无法找到目标的道路。但他仍然可以在河上射击。这意味着他可以找到一个有效的位置。
【问题讨论】: