【问题标题】:Row-major order indices行主要顺序索引
【发布时间】:2011-05-13 12:29:09
【问题描述】:

我目前正在研究将 2d 地形图保存到一维数组中的项目。地图中的每个块都由 xy 坐标索引。因此,为了将地图保存为一维数组,我使用行主顺序方法 (http://en.wikipedia.org/wiki/Row-major_order) 将 xy 坐标转换为单个索引值(这让我将块放入数组中)。

现在,我的问题是如何将其转换回来?我有一个唯一的数字,我必须将其转换回 xy 坐标。 任何帮助,将不胜感激。 ^^

【问题讨论】:

    标签: map indexing block coordinate


    【解决方案1】:

    要计算指数,您应该使用以下方法:

    index = X + Y * Width;
    

    因此,要扭转这一点,您可以利用整数除法截断来获得 Y,然后 X 就是 Y“用完”之后剩下的:

    Y = (int)(index / Width)
    X = index - (Y * Width)
    

    【讨论】:

    • 这似乎不起作用。例如 (0, 4) 给出 20,当反转时,20 返回 (16, 4)
    • 他的想法是对的,我认为他只是打错了字。 X = 索引 - (y* 宽度);所以 X 是你删除 Y 用完的行后剩下的东西。
    • 糟糕,这就是你刚起床时回答问题的结果!感谢您纠正我。
    猜你喜欢
    • 2017-11-18
    • 2016-01-06
    • 2017-07-04
    • 2012-09-02
    • 2020-09-15
    • 2011-01-18
    • 2011-01-12
    • 1970-01-01
    相关资源
    最近更新 更多