1

考虑给我们一个等距网格(考虑类似于暗黑破坏神)的瓷砖。我们对网格有一些度量,例如网格高度、网格宽度和图块高度/宽度。考虑这张图片:这个图片

网格的中心单元是 0,0 延伸等北 (+y)、等南(-y)、等东(+x)、等西(-x)。

假设我们要在网格上的任意位置绘制一个矩形。我们没有矩形的等距位置,而是具有网格的正常绘制坐标,其中左上角为 0,0,南为 y+,右为 x+。

如果我们有问题矩形的顶部、左侧、高度、宽度 - 我们如何计算与矩形底部边缘交叉的等单元格数组。

您选择任何语言来证明这一点就足够了。

4

1 回答 1

1

在一些关于等距编程的论文和书籍中(使用 Direct X7 进行等距编程,是的,它很旧,但概述了问题和技术),他们使用鼠标映射。

还有一种技术可以将矩形覆盖的地图区域渲染成图像,每个图块都有一个唯一的颜色(它只是渲染的颜色)。然后他们检查图像中有哪些颜色,然后提取图块列表。

由于您使用的是经典的等距瓷砖宽度半高,因此也可能存在数学解决方案。不幸的是,建议的算法在很大程度上取决于您的地图布局。

可以在这里找到基于 Java 的 TileSystem 的代码

于 2011-03-01T11:24:33.780 回答