作者koujason (龜~66.6%是水~)
看板Programming
標題[問題] OPGL裡的Timefunction
時間Sun Apr 19 15:57:32 2009
小弟在繪.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