方法1: 頂点と辺の情報を使用する方法 この方法では、立方体の各頂点の座標と、頂点を結ぶ辺の情報を使用して立方体を作成します。
#include <iostream>
#include <vector>
struct Point {
float x, y, z;
};
struct Face {
int a, b, c;
};
int main() {
std::vector<Point> vertices = {
{0.0f, 0.0f, 0.0f}, // 頂点0
{1.0f, 0.0f, 0.0f}, // 頂点1
{1.0f, 1.0f, 0.0f}, // 頂点2
{0.0f, 1.0f, 0.0f}, // 頂点3
{0.0f, 0.0f, 1.0f}, // 頂点4
{1.0f, 0.0f, 1.0f}, // 頂点5
{1.0f, 1.0f, 1.0f}, // 頂点6
{0.0f, 1.0f, 1.0f}
// 頂点7
};
std::vector<Face> faces = {
{0, 1, 2}, // 面0: 頂点0, 1, 2を結ぶ
{0, 2, 3}, // 面1: 頂点0, 2, 3を結ぶ
{1, 5, 6}, // 面2: 頂点1, 5, 6を結ぶ
{1, 6, 2}, // 面3: 頂点1, 6, 2を結ぶ
{3, 2, 6}, // 面4: 頂点3, 2, 6を結ぶ
{3, 6, 7}, // 面5: 頂点3, 6, 7を結ぶ
{0, 3, 7}, // 面6: 頂点0, 3, 7を結ぶ
{0, 7, 4}, // 面7: 頂点0, 7, 4を結ぶ
{0, 4, 5}, // 面8: 頂点0, 4, 5を結ぶ
{0, 5, 1}, // 面9: 頂点0, 5, 1を結ぶ
{4, 6, 5}, // 面10: 頂点4, 6, 5を結ぶ
{4, 7, 6}
// 面11: 頂点4, 7, 6を結ぶ
};
// 立方体の頂点と辺の情報を表示
for (const auto& vertex : vertices) {
std::cout << "頂点: (" << vertex.x << ", " << vertex.y << ", " << vertex.z << ")\n";
}
for (const auto& face : faces) {
std::cout << "辺: (" << face.a << ", " << face.b << ", " << face.c << ")\n";
}
return 0;
}
このコードでは、Point
とFace
という2つの構造体を使用して、立方体の頂点と辺の情報を表現しています。std::vector
コンテナを使用して頂点と面のデータを格納し、ループを使用してそれらを表示します。
方法2: 頂点の座標を計算する方法 この方法では、立方体の各頂点の座標を計算して立方体を作成します。
#include <iostream>
#include <vector>
struct Point {
float x, y, z;
};
int main() {
std::vector<Point> vertices;
// 立方体の頂点の座標を計算
for (float x = 0.0f; x <= 1.0f; x += 1.0f) {
for (float y = 0.0f; y <= 1.0f; y += 1.0f) {
for (float z = 0.0f; z <= 1.0f; z += 1.0f) {
vertices.push_back({x, y, z});
}
}
}
// 立方体の頂点の座標を表示
for (const auto& vertex : vertices) {
std::cout << "頂点: (" << vertex.x << ", " << vertex.y << ", " << vertex.z << ")\n";
}
return 0;
}
このコードでは、3重のループを使用して立方体の各頂点の座標を計算し、vertices
ベクターに格納します。そして、ループを使用して頂点の座標を表示します。
これらの方法を使用して、C++で立方体を作成することができます。適宜必要な変更を加えて、立方体の表現や使用方法をカスタマイズすることができます。