C++ 中OpenGL 画线的实现
在超级宝典中有这样的代码:#include<windows.h>#include<gl/glut.h>#include<math.h>constfloatGL_PI=3....
在超级宝典中有这样的代码:
#include<windows.h>
#include<gl/glut.h>
#include<math.h>
const float GL_PI=3.1415f;
void RenderScene(void)
{
GLfloat x=0,y=0,z=0,angle,xRot=0,yRot=0;
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glRotatef(xRot,1.0f,0.0f,0.0f);
glRotatef(yRot,0.0f,1.0f,0.0f);
glBegin(GL_POINTS);
z = -50.0f;
for(angle = 0.0f; angle <= (2.0f*GL_PI)*3.0f; angle+=0.1f)
{
x = 50.0f*sin(angle);
y = 50.0f*cos(angle);
glVertex3f(x,y,z);
z += 0.5f;
}
glEnd();
glPopMatrix();
glFlush();
}
void main()
{
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutCreateWindow("Bounce");
glutDisplayFunc(RenderScene);
glutMainLoop();
}
可是运行的时候怎么总是不对 展开
#include<windows.h>
#include<gl/glut.h>
#include<math.h>
const float GL_PI=3.1415f;
void RenderScene(void)
{
GLfloat x=0,y=0,z=0,angle,xRot=0,yRot=0;
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glRotatef(xRot,1.0f,0.0f,0.0f);
glRotatef(yRot,0.0f,1.0f,0.0f);
glBegin(GL_POINTS);
z = -50.0f;
for(angle = 0.0f; angle <= (2.0f*GL_PI)*3.0f; angle+=0.1f)
{
x = 50.0f*sin(angle);
y = 50.0f*cos(angle);
glVertex3f(x,y,z);
z += 0.5f;
}
glEnd();
glPopMatrix();
glFlush();
}
void main()
{
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutCreateWindow("Bounce");
glutDisplayFunc(RenderScene);
glutMainLoop();
}
可是运行的时候怎么总是不对 展开
展开全部
问题应该就在lz贴出的这段代码中
lz设的是双缓存glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB)
用的却是glFlush,当然会出不来
在双缓存模式下应该用glutSwapBuffers
在单缓存模式下用glFlush
相互配套应该就能出来了
lz设的是双缓存glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB)
用的却是glFlush,当然会出不来
在双缓存模式下应该用glutSwapBuffers
在单缓存模式下用glFlush
相互配套应该就能出来了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
开始时,默认下是采用实线模式的,所以前面开始是实线,后面你启用了点划模式,所以后面是点划线,opengl保留了这个状态,经过glutmainloop后,重画,采用的点划线的方式,所以前面的直线也是点划线了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是画一个空间螺旋线的程序,
螺旋线的方程可以参考高等数学后面的空间曲线一章.
你的glBegin()中是GL_POINTS,不对,
应为GL_LINES
试试呢?
螺旋线的方程可以参考高等数学后面的空间曲线一章.
你的glBegin()中是GL_POINTS,不对,
应为GL_LINES
试试呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从lz的图片观察来看,,,
问题貌似出在窗口客户区[Window Client Area]初始化的问题,,
貌似问题不是出在lz现在贴出来的这段代码里面,,,
问题貌似出在窗口客户区[Window Client Area]初始化的问题,,
貌似问题不是出在lz现在贴出来的这段代码里面,,,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB)
改成:
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB)
改成:
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询