日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

glClipPlane剪裁平面

發(fā)布時(shí)間:2024/8/23 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 glClipPlane剪裁平面 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

glClipPlane裁剪平面

? (2012-02-21 12:49:18) 轉(zhuǎn)載
標(biāo)簽:?

半平面

?

裁剪

?

線框

?

球體

?

表示

?

雜談

分類(lèi):?OPENGL
  • void?glClipPlane(GLenum?plane,?const?GLdouble?*equation);?
  • ????定義一個(gè)裁剪平面。equation參數(shù)指向平面方程Ax + By + Cz + D = 0的4個(gè)系數(shù)。equation=(0,-1,0,0),前三個(gè)參數(shù)(0,-1,0)可以理解為法線向下,只有向下的,即Y<0的才能顯示,最后一個(gè)參數(shù)0表示從z=0平面開(kāi)始。這樣就是裁剪掉上半平面。相應(yīng)的equation=(0,1,0,0)表示裁剪掉下半平面,equation=(1,0,0,0)表示裁剪掉左半平面,equation=(-1,0,0,0)表示裁剪掉右半平面,equation=(0,0,-1,0)表示裁剪掉前半平面,equation=(0,0,1,0)表示裁剪掉后半平面

    ?

    ?

    ?

    裁剪平面的代碼例子

    示例3-5是經(jīng)過(guò)兩個(gè)裁剪平面裁剪的線框球體,裁去了3/4體積,如圖3-23所示。



    ?
    圖3-23 裁剪后的線框球體

    示例程序3-5 經(jīng)過(guò)兩個(gè)裁剪平面裁剪的線框球體:clip.c

  • void?init(void) ?
  • { ?
  • glClearColor(0.0,0.0,0.0,0.0); ?
  • glShadeModel(GL_FLAT); ?
  • } ?
  • 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,1.0); ?
  • glPushMatrix(); ?
  • glTranslatef(0.0,0.0,-5.0); ?
  • ?
  • glClipPlane(GL_CLIP_PLANE0,eqn); ?
  • glEnable(GL_CLIP_PLANE0); ?
  • ?
  • glClipPlane(GL_CLIP_PLANE1,eqn2); ?
  • glEnable(GL_CLIP_PLANE1); ?
  • glRotatef(90.0,1.0,0.0,0.0); ?
  • ?
  • glutWireSphere(1.0,20,16); ?
  • glPopMatrix(); ?
  • glFlush(); ?
  • } ?
  • void?reshape(int?w,int?h) ?
  • { ?
  • glViewport(0,0,(GLsizei)w,(GLsizei)h); ?
  • glMatrixMode(GL_PROJECTION); ?
  • glLoadIdentity(); ?
  • gluPerspective(60.0,(GLfloat)w/(GLfloat)h,1.0,20.0); ?
  • glMatrixMode(GL_MODELVIEW); ?
  • } ?
  • int?main(int?argc,char**argv) ?
  • { ?
  • glutInit(&argc,argv); ?
  • glutInitDisplayMode(GLUT_SINGLE?|GLUT_RGB); ?
  • glutInitWindowSize(500,500); ?
  • glutInitWindowPosition(100,100); ?
  • glutCreateWindow(argv?[0]); ?
  • init(); ?
  • glutDisplayFunc(display); ?
  • glutReshapeFunc(reshape); ?
  • glutMainLoop(); ?
  • return?0; ?
  • }?
  • 總結(jié)

    以上是生活随笔為你收集整理的glClipPlane剪裁平面的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。