用OpenGL画图时如何清楚指定的图形?求大神指点!
答案:1 悬赏:0 手机版
解决时间 2021-03-26 15:00
- 提问者网友:两耳就是菩提
- 2021-03-26 12:00
用OpenGL画图时如何清楚指定的图形?求大神指点!
最佳答案
- 五星知识达人网友:未来江山和你
- 2021-03-26 12:18
只要下一个渲染不再画那个想清除的部分就是了。。。
不知道我是否真的理解了你的问题。
你看下,我贴的代码:画出左上角到鼠标位置的一条线。
追问万分感谢您的回答!我的问题再简单点陈述可以是这样的:先绘制一条线,点一下鼠标,让这条线消失追答void mouse(int button, int state, int x, int y)
{
// Save the left button state
if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
{
bDraw = true;
glutPostRedisplay(); // Left button has changed; redisplay!
}
if (button == GLUT_RIGHT_BUTTON && state == GLUT_DOWN)
{
bDraw = false;
glutPostRedisplay();
}
}该一下我贴的代码,添加mouse函数,并调用glutMouseFunc(mouse);
然后绘制函数这样,
void display(void) {
glClearColor (0.0,0.0,0.0,1.0);
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
if( bDraw )
{
glBegin(GL_LINES);
glVertex2f(0,0);
glVertex2f(x,y);
glEnd();
}
glutSwapBuffers();
}那么按下右键便不画,左键便画
追问感谢细心解答~分肯定给你了,我明白你的意思了,但是我想问的是有没有办法使已经画出来的那个线段消失掉。比如你的程序实现了左键点击画出一条直线,我想再次点击的时候这条直线消失掉,显示另外一条直线到点击点的位置
不知道我是否真的理解了你的问题。
你看下,我贴的代码:画出左上角到鼠标位置的一条线。
{
// Save the left button state
if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
{
bDraw = true;
glutPostRedisplay(); // Left button has changed; redisplay!
}
if (button == GLUT_RIGHT_BUTTON && state == GLUT_DOWN)
{
bDraw = false;
glutPostRedisplay();
}
}该一下我贴的代码,添加mouse函数,并调用glutMouseFunc(mouse);
然后绘制函数这样,
void display(void) {
glClearColor (0.0,0.0,0.0,1.0);
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
if( bDraw )
{
glBegin(GL_LINES);
glVertex2f(0,0);
glVertex2f(x,y);
glEnd();
}
glutSwapBuffers();
}那么按下右键便不画,左键便画
追问感谢细心解答~分肯定给你了,我明白你的意思了,但是我想问的是有没有办法使已经画出来的那个线段消失掉。比如你的程序实现了左键点击画出一条直线,我想再次点击的时候这条直线消失掉,显示另外一条直线到点击点的位置
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯