OpenGL画半个球面(6-2)

基于上篇博文OpenGL画球面(6) - 邗影 - 博客园 (cnblogs.com),我们画了一颗球,那我想画半颗????

顶点:(上半球)

 顶点(下半球)

// Y_SEGMENTS 和 X_SEGMENTS 分别表 示将α 和β 分割了多少份,
//y 和 x 分别表示是第几份,以此进行遍历, xSegment*2.0f*PI 即β 角,ySegment*PI 即α 角。
    for (int y = -(Y_SEGMENTS / 2); y <= 0; y++)
    {
        for (int x = 0; x <= X_SEGMENTS; x++)
        {
            float xSegment = (float)x / (float)X_SEGMENTS;
            float ySegment = (float)y / (float)Y_SEGMENTS;
            float xPos = std::cos(xSegment * 2.0f * PI) * std::cos(ySegment * PI);
            float yPos = std::sin(ySegment * PI);
            float zPos = std::sin(xSegment * 2.0f * PI) * std::cos(ySegment * PI);
            

            sphereVertices.push_back(xPos);
            sphereVertices.push_back(yPos);
            sphereVertices.push_back(zPos);
        }
    }

 

 

 顶点索引

 

 

 显示:

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2022-07-02 21:14  邗影  阅读(256)  评论(0编辑  收藏  举报

导航