生成动态三维矩阵
Generating a dynamic 3D matrix
我需要动态生成这样的3D矩阵:
float vCube[8][3] = {
{1.0f, -1.0f, -1.0f}, {1.0f, -1.0f, 1.0f},
{-1.0f, -1.0f, 1.0f}, {-1.0f, -1.0f, -1.0f},
{1.0f, -1.0f, -1.0f}, {1.0f, 1.0f, 1.0f},
{-1.0f, 1.0f, 1.0f}, {-1.0f, 1.0f, -1.0f}
};
我的意思是,取一个值,在运行时将其放入矩阵中。我试图制作一个浮动指针,然后通过new添加3D元素,但结果不是我想要的。
注意,我不想使用STL之类的向量,只想使用平面矩阵。
无论您是否使用vector
,我都建议您使用:
struct Elem3D
{
float v[3];
};
然后你可以很容易地创建一个vector
:
vector <Elem3D> cube(8);
或者动态地分配多个元素
Elem3D *cube = new Elem3D[8];
在不使用struct
或class
的情况下处理二维数组很快就会在语法和"脑力损伤"方面变得非常混乱。
您还可以将3D矩阵存储在一维阵列中
x = height
y = width
z = depth
float VCube[x*y*z]
a_ijk = VCube[i + y * (j + z * k)]
一个有趣的问题是,如果我们想进行矩阵运算
要初始化二维数组,首先定义变量;
float vCube[8][3];
然后创建一个函数来初始化vCube,或者你可以在构造函数中这样进行初始化。
void function(float a, float b, float c) {
for(int i = 0; i < 8; i++) {
for(int j = 0; j < 3; j +=3) {
vCube[i][j] = a;
vCube[i][j+1] = b;
vCube[i][j+2] = c;
}
}
}
相关文章:
- 如何将三维尺寸不固定的三维阵列展平为一维阵列
- 二维动态数组逻辑
- 如何使用qt缩放三维网格
- 三维数组中的C/C++DWORD到BYTE和BYTE到DWORD的转换
- 使用vtkImageReslice重新切片三维原始图像
- 特征:创建一个具有函数的三维阵列
- 扩充矩阵的行缩减-三维样条曲线计算
- 使用pcl transformcloud将三维点平移并旋转到原点
- 用C++从三维矢量中删除元素
- 如何访问CGAL三维三角测量中的面
- 如何在Openscenegraph中从二维鼠标点击的屏幕坐标点计算三维点(世界坐标)
- std::将三维数组复制到三维向量中
- 显示结构的三维数组
- 如何将X 2维数组连接到一个三维阵列中
- 使用unique_ptr来管理三维数组
- 如何访问三维矩阵元素
- 无法访问三维数组中的特定位置
- 生成动态三维矩阵
- 三维阵列动态分配问题
- 动态三维阵列上的OpenGL glDrawPixels