今天在制作中各种百度各种查阅,收益颇丰.....
首先是上节制作的小程序会存在一个问题,比如最小化或者移动窗口到遮挡opengl部分后,整个画面会残缺--
整个问题应该是因为窗口重画过程中没有对opengl部分进行重画,所以需要在COpengl类中的OnPaint中加入重画部分
RenderScene();
其次是上节写的RenderScene()函数中的坐标范围必须在-1.0~1.0之间 否则无法显示----整个问题后面会专门解决
再次是显示点的函数:
glBegin(GL_POINTS); //注意此处必须是GL_POINTS 否则无法显示
for (int i=0;i<ptnum;i++)
{
glVertex3f(posdata[i*3],posdata[i*3+1],posdata[i*3+2]);
}
glEnd();
在这里吃了不少苦头-----
另外,显示三维点的顺序是按照 实际操作相反的顺序来的
即初始化opengl平台后应该先 设置投影模式--投影--设置观察点
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(80,(xmax-xmin)/(zmax-zmin),1,800);
gluLookAt(0,ymax*2,0,0,0,0,0,0,1);
这样可以解决坐标范围的限制
最终的显示结果如图: