行主序索引

发布于 2024-11-07 05:11:36 字数 280 浏览 4 评论 0原文

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

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

I'm currently working on project of where 2d terrain maps are saved into a one-dimensional array. Each block in the map is indexed by xy coordinates. So, to save the map into a one-dimensional array, I used the row-major order method (http://en.wikipedia.org/wiki/Row-major_order) to convert the xy coordinates into a single index value (Which let me put the block into an array).

Now, my problem is how do I convert it back? I have a unique number which I have to convert back into xy coordinates.
Any help would be appreciated. ^^

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

满栀 2024-11-14 05:11:36

要计算索引,您应该使用类似以下的内容:

index = X + Y * Width;

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

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

To calculate indices you should be using something like this:

index = X + Y * Width;

So, to reverse this you can take advantage of integer division truncation to get Y, and then X is just what's left over after what Y "used up":

Y = (int)(index / Width)
X = index - (Y * Width)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文