我想画三维坐标 x, y, z, 怎么做?
glBegin(GL_LINES);
glColor3f (0.0, 1.0, 1.0);
glVertex3f(0.0, 0.0, 0.0);
glVertex3f(0.0, 1.0, 0.0);
glVertex3f(0.0, 0.0, 0.0);
glVertex3f(1.0, 0.0, 0.0);
glVertex3f(0.0, 0.0, 0.0);
glVertex3f(0.0, 0.0, 1.0);
glEnd();
没有立体效果,为什么?
问题点数:50、回复次数:5Top
1 楼zhangyan_qd(doggyzone)回复于 2002-06-10 17:57:58 得分 10
做投影变换了吗?Top
2 楼davidlxm(davidlxm)回复于 2002-06-10 18:55:30 得分 40
你的摄像机是怎么设的?如果摄像机的位置在Z轴上当然看不到什么立体效果。还有投影矩阵怎么设的?Top
3 楼TianGo123(农民)回复于 2002-06-10 20:03:29 得分 0
To zhangyan_qd(doggyzone) ( )
不是太明白!
To davidlxm(davidlxm) ( ) 信誉:100
glLoadIdentity();
glTranslatef(-4.0f,0.0f,-6.0f); Top
4 楼davidlxm(davidlxm)回复于 2002-06-10 20:56:38 得分 0
你只是设置了ModelView矩阵,Projection矩阵为单位矩阵,这样是不会有什么透视效果的,如果想看到3D的效果,就不要画线,最好画一些多边形如:
glMatrixModel(GL_PROJECTION)
glLoadIdentity();
glPerspective(45, 1, 0.0001f, 1000);
glMatrixModel(GL_MODELVIEW);
glTranslatef(2, 2, -2);
glBegin(GL_TRIANGLES);
glColor3f (0.0f, 1.0f, 1.0f);
glVertex3f(0.0f, 0.0f, 0.0f);
glVertex3f(0.0f, 1.0f, 0.0f);
glVertex3f(-1.0f, 0.0f, 0.0f);
glEnd();
不要忘了使用光照等东西
Top
5 楼TianGo123(农民)回复于 2002-06-11 07:43:31 得分 0
谢谢老兄的答复!
是glTranslatef( )函数的问题!
我设置的视口是(-1.5, 0.0, -6.0)
改为glTranslatef(-1.5f,-0.5f,-6.0f)后可以了!
对于glTranslatef还不是很懂,还有关于设置的值,都很小,大了就看不到效果!
有没有什么好的资料推荐一下啊!
已有资料:
1 www.csdn.net/Develop/read_article.asp?id=6865
2 vip.6to23.com/mays/develop/opengl/200109/OpenGL3DProg.8.htm
Top




