目次から探す
3次元配列の応用例
3次元配列は、多くの場面で利用されます。
ここでは、画像処理と3Dグラフィックスの2つの応用例について説明します。
画像処理における3次元配列の利用
画像処理では、画像をピクセル単位で扱います。
一つのピクセルには、赤、緑、青の3つの色成分があります。
このような情報を効率的に扱うために、3次元配列が使用されます。
例えば、幅がWピクセル、高さがHピクセルの画像を考えます。
この画像を表現するために、3次元配列を使用します。
配列の要素は、各ピクセルの色成分を表します。
#include <stdio.h>
#define WIDTH 640
#define HEIGHT 480
int main() {
// 画像データを格納する3次元配列
unsigned char image[HEIGHT][WIDTH][3];
// 画像データの初期化
for (int y = 0; y < HEIGHT; y++) {
for (int x = 0; x < WIDTH; x++) {
// 赤成分
image[y][x][0] = 255;
// 緑成分
image[y][x][1] = 0;
// 青成分
image[y][x][2] = 0;
}
}
// 画像データの表示
for (int y = 0; y < HEIGHT; y++) {
for (int x = 0; x < WIDTH; x++) {
printf("(%d, %d, %d) ", image[y][x][0], image[y][x][1], image[y][x][2]);
}
printf("\n");
}
return 0;
}
上記のコードでは、幅640ピクセル、高さ480ピクセルの赤色の画像を生成しています。
3次元配列 image
の要素には、各ピクセルの赤、緑、青の成分が格納されています。
画像データの初期化と表示のために、2重のループを使用しています。
3Dグラフィックスにおける3次元配列の利用
3Dグラフィックスでは、オブジェクトの形状や色を表現するために3次元配列が使用されます。
例えば、立方体を表現するために、3次元配列を使用することがあります。
#include <stdio.h>
#define SIZE 10
int main() {
// 立方体の形状を表現する3次元配列
int cube[SIZE][SIZE][SIZE];
// 立方体の初期化
for (int z = 0; z < SIZE; z++) {
for (int y = 0; y < SIZE; y++) {
for (int x = 0; x < SIZE; x++) {
if (x == 0 || x == SIZE - 1 || y == 0 || y == SIZE - 1 || z == 0 || z == SIZE - 1) {
cube[z][y][x] = 1; // 壁の部分を1で表現
} else {
cube[z][y][x] = 0; // 内部の部分を0で表現
}
}
}
}
// 立方体の表示
for (int z = 0; z < SIZE; z++) {
for (int y = 0; y < SIZE; y++) {
for (int x = 0; x < SIZE; x++) {
printf("%d ", cube[z][y][x]);
}
printf("\n");
}
printf("\n");
}
return 0;
}
上記のコードでは、一辺の長さが10の立方体を生成しています。
3次元配列 cube
の要素には、各位置の壁の有無を表す値が格納されています。
立方体の初期化と表示のために、3重のループを使用しています。
これらの例では、3次元配列を使用することで、画像処理や3Dグラフィックスのような応用分野で効率的にデータを扱うことができます。
3次元配列の応用はさまざまであり、他の分野でも幅広く活用されています。
次のページ3次元配列を扱う注意点