看板 Programming 關於我們 聯絡資訊
小弟在繪.STL的3D時想要先把點畫出來 在一條線一條線畫來看他點資料的順序 所以想用glut的Timer 可是怎麼用都沒有反應 而且測試了一下OPGL超級手冊光碟裡的檔案 他再第三章的檔裡有一個Bounce的檔是有用到 glutTimerFunc()的 (就是書上P.59的彈跳方塊) 發現這個擋我的連.exe按下去都只有一個藍色的背幕而已 請問這樣是發生了什麼事? 順便問一下...PTT有OPGL的專門板嗎? 附上寫的Timer部份 void DrowLines(int lNum) { glBegin(GL_LINE_STRIP); glColor3f(1.0f, 0.0f, 0.0f); glVertex3f(triArray[lNum].a[0],triArray[lNum].a[1],triArray[lNum].a[2]); glVertex3f(triArray[lNum].b[0],triArray[lNum].b[1],triArray[lNum].b[2]); glVertex3f(triArray[lNum].c[0],triArray[lNum].c[1],triArray[lNum].c[2]); glEnd(); glutPostRedisplay(); glutTimerFunc(1000,DrowLines,++lNum); } void RenderScene(void) { // Clear the window glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Save matrix state and do the rotation glPushMatrix(); glRotatef(xRot, 1.0f, 0.0f, 0.0f); glRotatef(yRot, 0.0f, 1.0f, 0.0f); glTranslatef(-cent[0], -cent[1], -cent[2]); // Restore transformations glPointSize(5); glBegin(GL_POINTS); glColor3f(1.0f, 2.0f, 0.0f); for(int pNum=0;pNum<nTriangles;pNum++) { glVertex3f(triArray[pNum].a[0],triArray[pNum].a[1],triArray[pNum].a[2]); glVertex3f(triArray[pNum].b[0],triArray[pNum].b[1],triArray[pNum].b[2]); glVertex3f(triArray[pNum].c[0],triArray[pNum].c[1],triArray[pNum].c[2]); } glEnd(); glutTimerFunc(1000,DrowLines,0); //Flush drawing commands //glFlush(); glutSwapBuffers(); glPopMatrix(); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 編輯: koujason 來自: 218.171.137.21 (04/19 15:58)
NDark:你這做法沒有意義.renderscene會一直執行. 61.230.186.249 04/19 16:12
NDark:你只要用全域變數依順序畫你要的點即可. 61.230.186.249 04/19 16:13
koujason:我是要讓點一直出現沒錯喔!是說線出不來 218.171.137.21 04/19 16:17
koujason:我的點已經全部都出來了...可是線沒下文 218.171.137.21 04/19 16:17
NDark:renderscene就是你的timer function 61.230.186.249 04/19 16:18
NDark:不用另外再註冊一個 61.230.186.249 04/19 16:18
koujason:喔喔!了解! 218.171.137.21 04/19 16:31