Algorithm 在两个单元之间查找网格空间的算法

Algorithm 在两个单元之间查找网格空间的算法,algorithm,path-finding,raycasting,Algorithm,Path Finding,Raycasting,我正在制作一个基于网格的游戏,它有“视线”瞄准。通常情况下,游戏引擎会使用Raycast来实现这一点,但我不想使用引擎,所以我尝试“推出我自己的”解决方案 基本上,给定P1,P2对,我想找到它们之间的所有空格(标记为X) 我很难弄明白怎么做。不知何故,我必须找出哪一边距离最近,并将它们作为“光线投射”的起点。然后我想我可以以单元格大小为增量提取“样本”,并将其和单元格的索引进行比较 不幸的是,我还没有任何代码。。。我希望有人能用一些伪代码来帮助我得到算法。我想如果我能找出每一条粉色线的起点和终点

我正在制作一个基于网格的游戏,它有“视线”瞄准。通常情况下,游戏引擎会使用Raycast来实现这一点,但我不想使用引擎,所以我尝试“推出我自己的”解决方案

基本上,给定P1,P2对,我想找到它们之间的所有空格(标记为
X

我很难弄明白怎么做。不知何故,我必须找出哪一边距离最近,并将它们作为“光线投射”的起点。然后我想我可以以单元格大小为增量提取“样本”,并将其和单元格的索引进行比较

不幸的是,我还没有任何代码。。。我希望有人能用一些伪代码来帮助我得到算法。我想如果我能找出每一条粉色线的起点和终点,那么我就可以用它来找到橙色的正方形

  • 显然,这是个不错的选择
  • 我希望我能在链接之外发布一些内容,但这无助于我给出完整的上下文。因此,最好访问链接并使用那里的信息。不要错过评论部分。那里也有很好的见解

  • 请检查一下这个

  • 你的视线需要这么粗吗?为什么不从P1的中心追踪一条光线到P2的中心呢?@Stef是的,我想了一下,但是如果它们完全对角,那么什么都不能等,我想那不是真的……谢谢Shridhar,这应该是足够的信息,让我去。我想让线更厚的原因是因为整个“对角线可以透过墙看”的元素。但我认为这可以通过增加墙壁的厚度来解决(如果需要容纳,增加网格大小)。所以Bresenham算法应该可以完成这项工作。@maxpleaner我很高兴你现在被解锁了。