C++ 将r、g和b组件存储在c+中的2D数组中+;
比如说,我正在扫描一个三角形列表,每个三角形都有一个固定的r,g,b值(颜色)。我想将每个三角形的r、g、b分量存储在一个2D数组中,然后检索它们。如果屏幕的宽度和高度分别为W和H,则可以声明一个大小为W*H的数组,但是如何在C++中的3个组件(R,G,B)存储?C++ 将r、g和b组件存储在c+中的2D数组中+;,c++,arrays,C++,Arrays,比如说,我正在扫描一个三角形列表,每个三角形都有一个固定的r,g,b值(颜色)。我想将每个三角形的r、g、b分量存储在一个2D数组中,然后检索它们。如果屏幕的宽度和高度分别为W和H,则可以声明一个大小为W*H的数组,但是如何在C++中的3个组件(R,G,B)存储? constexpr std::size_t w = /* some constant */; constexpr std::size_t h = /* some constant */; struct Color { int
constexpr std::size_t w = /* some constant */;
constexpr std::size_t h = /* some constant */;
struct Color {
int r, g, b;
};
Color color[w][h];
存储在结构中
存储在结构中有几种方法可以做到这一点。。。您可以使用位掩码和位标志来存储和检索2d int数组的值,您可以创建一个名为color的自定义结构或类,如下所示:
struct Color
{
float r;
float g;
float b;
};
然后将数组声明为:
Color screenColors[1024][768];
您可以始终将1024和768值声明为常量整数,并使用它们来代替硬编码值
如果您想了解有关位屏蔽的更多信息,我建议您阅读:
有几种方法可以做到这一点。。。您可以使用位掩码和位标志来存储和检索2d int数组的值,您可以创建一个名为color的自定义结构或类,如下所示:
struct Color
{
float r;
float g;
float b;
};
然后将数组声明为:
Color screenColors[1024][768];
您可以始终将1024和768值声明为常量整数,并使用它们来代替硬编码值
如果您想了解有关位屏蔽的更多信息,我建议您阅读:
您可以使用结构。示例:
structcolor{intr,g,b;};颜色*数组=新颜色[w*h]代码>它可以是结构{r,g,b}的数组,但通常您只需将三个字节打包成一个整数,并将像素的rgb值存储为一个整数。您可以使用结构。示例:structcolor{intr,g,b;};颜色*数组=新颜色[w*h]代码>它可以是结构{r,g,b}的数组,但通常您只需将三个字节打包成一个整数,并将像素的rgb值存储为一个整数。请注意,当w
和h
为常量时,此代码将起作用,但是标准C++中不支持可变长度数组,注意,当代码<> W//>和 H</C>时,此代码将工作,但标准C++中不支持可变长度数组。