void glClipPlane (GLenum plane, const GLdouble *equation);
//定义一个裁剪平面,equation参数指向平面方程Ax+By+Cz+D=0的4个系数,所有不是位于这个半空间的点都将被删除掉,
//plane参数是GL_CLIP_PLANEi,其中i是一个整数,表示需要定义那个有效裁剪截面,i的值位于0和5之间
实例
void display(void)
{
GLdouble eqn[4] = {0.0, 1.0, 0.0, 0.0};
GLdouble eqn2[4] = {1.0, 0.0, 0.0, 0.0};
glClear(GL_COLOR_BUFFER_BIT);
glColor3f (1.0, 1.0, 0.0);
glPushMatrix();
glTranslatef (0.0, 0.0, -5.0);//移动模型
/* clip lower half -- y < 0 */
glClipPlane (GL_CLIP_PLANE0, eqn);//裁剪平面 y < 0
glEnable (GL_CLIP_PLANE0);//使截面有效
/* clip left half -- x < 0 */
glClipPlane (GL_CLIP_PLANE1, eqn2);//裁剪平面 x < 0
glEnable (GL_CLIP_PLANE1);
glRotatef (90.0, 1.0, 0.0, 0.0);//旋转圆体
glutWireSphere(1.0, 20, 16);//画圆体
glPopMatrix();
glFlush ();
}