0
点赞
收藏
分享

微信扫一扫

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

茗越 2022-06-17 阅读 38
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 条评论