void CObject::generateSphere(float r, int N) { for(int j = 0 ; j <= N ; j++) { for(int i = 0 ; i < N ; i++) { float theta1 = M_PI * float(j) / float(N); float theta2 = M_PI * float(j-1) / float(N); float phi = M_PI * 2 * float(i) / float(N); float nx1 = sin(theta1) * cos(phi); float nx2 = sin(theta2) * cos(phi); float nz1 = sin(theta1) * sin(phi); float nz2 = sin(theta2) * sin(phi); float ny1 = cos(theta1); float ny2 = cos(theta2); float x1 = r * nx1; float x2 = r * nx2; float y1 = r * ny1; float y2 = r * ny2; float z1 = r * nz1; float z2 = r * nz2; add(QVector3D(x1, y1, z1), QVector3D(0, 0, 0)); add(QVector3D(x2, y2, z2), QVector3D(0, 0, 0)); } } m_primitive = GL_TRIANGLE_STRIP; }