C++での立方体の作成方法


方法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;
}

このコードでは、PointFaceという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++で立方体を作成することができます。適宜必要な変更を加えて、立方体の表現や使用方法をカスタマイズすることができます。