ios - 计算等距网格上矩形内包含的单元格

标签 ios objective-c isometric

考虑给我们一个等距的方 block 网格(考虑像暗黑破坏神这样的东西)。我们对网格有一些度量,例如网格高度、网格宽度和图 block 高度/宽度。考虑这张图片:this image

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

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

如果我们有相关矩形的顶部、左侧、高度和宽度 - 我们如何计算与矩形底部边缘相交的 iso-cells 数组。

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

最佳答案

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

还有一种技术是将矩形覆盖的 map 区域渲染成图像,每个瓦片都有一个独特的颜色(而且它只是渲染的颜色)。之后他们检查图像中有哪些颜色,然后提取图 block 列表。

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

The code for a Java based TileSystem can be found here

关于ios - 计算等距网格上矩形内包含的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5128786/

相关文章:

iOS UIPageControl 改变位置

ios - Appium 错误 : start point is not within the bounds of the screen

objective-c - 如何将可变数量的参数从带有可变数量参数的 method1 传递给 method2?

Java 鼠标在钻石平铺 map 上采摘

ios - UILabel 滚动后不遵守约束(xib 内的标签,作为 uitableviewcell 排队)

iphone - 如何将NSMutableArray值转换为NSString?

ios - 不使用 "hidden"或 "disabled"隐藏 UIButton

ios - 数组项在 IOS 中显示错误

c++ - 将笛卡尔宽度和高度转换为等距

algorithm - 交错等距探路者