《高效学习OpenGL》之 其他裁剪平面 glClipPlane()

来源:互联网 发布:韶关网络布线方案 编辑:程序博客网 时间:2024/06/05 21:54
  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 ();}


0 0
原创粉丝点击