考虑给我们一个等距的方 block 网格(考虑像暗黑破坏神这样的东西)。我们对网格有一些度量,例如网格高度、网格宽度和图 block 高度/宽度。考虑这张图片:
网格的中心单元格是 0,0 延伸等北 (+y)、等南 (-y)、等东 (+x)、等西 (-x)。
假设我们要在网格上的任意位置绘制一个矩形。我们没有矩形的等距位置,而是有网格的正常绘制坐标,其中左上角为 0,0,南为 y+,右为 x+。
如果我们有相关矩形的顶部、左侧、高度和宽度 - 我们如何计算与矩形底部边缘相交的 iso-cells 数组。
您选择任何语言来证明这一点就足够了。
最佳答案
在一些关于等距编程的论文和书籍中(使用 Direct X7 进行等距编程,是的,它很旧,但提供了有关问题和技术的概述)他们使用鼠标映射。
还有一种技术是将矩形覆盖的 map 区域渲染成图像,每个瓦片都有一个独特的颜色(而且它只是渲染的颜色)。之后他们检查图像中有哪些颜色,然后提取图 block 列表。
由于您使用的是经典的等距瓷砖宽度半高,因此也可能有一个数学解决方案。不幸的是,建议的算法在很大程度上取决于您的 map 布局。
关于ios - 计算等距网格上矩形内包含的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5128786/