在 3D 矩阵中的位置

Posted

技术标签:

【中文标题】在 3D 矩阵中的位置【英文标题】:Position in 3D matrix 【发布时间】:2013-02-04 14:44:27 【问题描述】:

我有 3D 数据结构。其中我有值:0 - n^3。 例如:如果 n = 3,则 A[3][3][3] 将包含值 0 - 26。

现在我想知道 0 - 26 范围内随机值的位置(i,j,k from A[][][] -> 没有任何循环和迭代。

例如,如果我给出 1,函数应该返回 0,0,1。

谁能帮我解决这个问题?

【问题讨论】:

你可以用基本的算术计算出来。您可能缺少的唯一想法是模数 % 运算符 我只是好奇你是如何拟合从 0 到 27 到 3x3x3 矩阵的值 这个数组数组中的值 [0,27) 的顺序是什么?你只是举了一个例子 1 -> 0,0,1 并没有很具体。 @user902383 :应该是 0 - 26 !我的错。 @sellibitze: A[][][] 看起来像这样:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 时我给出 0 - 26 之间的任何数字。它应该返回我在矩阵中的位置。 【参考方案1】:

提示:使用余数运算符 (%)。 (例如5 % 3 == 25 / 3 == 1

【讨论】:

感谢您的提示。必须对其进行改进以获得通用行为。但完全有帮助。

以上是关于在 3D 矩阵中的位置的主要内容,如果未能解决你的问题,请参考以下文章

如何在opengl中计算给定3D点及其2D屏幕位置的投影/模型视图矩阵

使用 Python 从 3D 中的六个点确定齐次仿射变换矩阵

[翻译]观察变换View Transform (Direct3D 9)

2D到3D 外参矩阵估计

Python中的稀疏3d矩阵/数组?

在c中的3d渲染:显示故障