glBegin(GL_POLYGON);
glVertex3f( 0.2, 0.2, 0.1);
glVertex3f( 0.2,-0.2, 0.1);
glVertex3f(-0.2,-0.2, 0.1); ///消去一個點
glEnd();
glBegin(GL_POLYGON);
glVertex3f( 0.2, 0.2,-0.1);
glVertex3f( 0.2,-0.2,-0.1);
glVertex3f(-0.2,-0.2,-0.1); ///消去一個點
glEnd();
glBegin(GL_QUAD_STRIP);
glVertex3f( 0.2, 0.2, 0.1);
glVertex3f( 0.2, 0.2,-0.1);
glVertex3f( 0.2,-0.2, 0.1);
glVertex3f( 0.2,-0.2,-0.1);
glVertex3f(-0.2,-0.2, 0.1);
glVertex3f(-0.2,-0.2,-0.1); ///這裡是刪掉一組點
glEnd();
四個點中消去一個點就可以了
而下面用來畫黑線的也是一樣各刪去一個點
glColor3f(0,0,0);
glBegin(GL_LINE_LOOP);
glVertex3f( 0.2, 0.2, 0.1);
glVertex3f( 0.2,-0.2, 0.1);
glVertex3f(-0.2,-0.2, 0.1); ///消去一個點
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3f( 0.2, 0.2,-0.1);
glVertex3f( 0.2,-0.2,-0.1);
glVertex3f(-0.2,-0.2,-0.1); ///消去一個點
glEnd();
glBegin(GL_LINES);
glVertex3f( 0.2, 0.2, 0.1);
glVertex3f( 0.2, 0.2,-0.1);
glVertex3f( 0.2,-0.2, 0.1);
glVertex3f( 0.2,-0.2,-0.1);
glVertex3f(-0.2,-0.2, 0.1);
glVertex3f(-0.2,-0.2,-0.1); ///這裡是刪掉一組點
glEnd();
刪掉點後值就會跑出立體的三角形了
2.再來要來做用 mouse 來移動我們畫的立體三角形
3.首先要在主程式中加入glutMotionFunc(motion); ///mouse的motion
4.接下來是新增一個 motoin 的函式
5.再來要在外部增加一個 angle2 = 0 的變數
也要在display還是裡面再加一個 glRotatef(angle2, 1,0,0) 讓它可以上下左右旋轉
6.再來要讓它看起來更有3D深度的感覺, 所以再 main() 中 glutCreateWindow() 之前加入
glutInitDisplayMode(GLUT_DEPTH) 讓它顯示的window有3D深度的感覺
glEnable(GL_DEPTH_TEST)
這行是開啟 Depth test 深度測試, 讓近的會擋到遠的, 遠的不會擋到近的
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
8.這樣就可以用 mouse 控制立體三角形了~~~
沒有留言:
張貼留言