在阅读了Red Blob游戏的优秀之后。
我想知道如何编写一个SQL查询来返回围绕中心瓦片的瓦片,直到X的范围。(假设文章中介绍的“轴向坐标”)
我首先想到的一个简单的想法是
WHERE x BETWEEN tile_x - 1 AND tile_x + 1 AND y BETWEEN tile_y - 1 AND tile_y + 1
但这将返回太多的瓦片,在某种程度上创建一个更像菱形而不是我需要的圆形的形状。
不幸的是,我还没有找到一个确凿的答案,也许这里有人可以给我一个提示。
我已经考虑了一些关于坐标总和的技巧,以及它们是大于还是小于范围,但这不适用于轴坐标。
用户类型为x和y的值,这将是一个坐标。那里有某种形状,我需要知道这个坐标是在外部,还是在这个形状的边界上。我知道如何用长方形,但不是三角形或圆形。目前,我需要使用以下形状来完成此操作:
对于圆形或三角形,我该怎么做?
对于矩形,我使用了以下代码行:
IF (x>=-5) AND (x<=2) AND (y>=-1) AND (y<=3) then
IF (x=-5) OR (x=2) OR (y=-1) OR (y=3) then
writeln('Dot is located on line')
else writeln(