基于上篇博文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); } }
顶点索引
显示: