作者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)
1F:推 NDark:你这做法没有意义.renderscene会一直执行. 61.230.186.249 04/19 16:12
2F:→ NDark:你只要用全域变数依顺序画你要的点即可. 61.230.186.249 04/19 16:13
3F:→ koujason:我是要让点一直出现没错喔!是说线出不来 218.171.137.21 04/19 16:17
4F:→ koujason:我的点已经全部都出来了...可是线没下文 218.171.137.21 04/19 16:17
5F:推 NDark:renderscene就是你的timer function 61.230.186.249 04/19 16:18
6F:→ NDark:不用另外再注册一个 61.230.186.249 04/19 16:18
7F:→ koujason:喔喔!了解! 218.171.137.21 04/19 16:31