<p>我试图在二维网格上实现一个视线算法。我知道它在概念上是如何工作的,但我不能把它当作一个算法来实现。</p>
<p>基本思想很简单。在伪代码中:</p>
<pre><code>function LineOfSight(point1, point2): boolean
squares = GetListOfSquaresOnLine(point1, point2)
for each square in squares
if square.IsOpaque then return false
return true
</code></pre>
<p><code>GetListOfSquaresOnLine</code>将(概念上)从点1的网格正方形的中心到点2的网格正方形的中心画一条直线,并返回这条线通过的所有正方形的列表。但这是我不知道如何实施的部分。有人知道怎么做吗?首选Delphi或C示例,但不是必需的。</p>