三维显示软件制作--显示部分(3)

今天在制作中各种百度各种查阅,收益颇丰.....

首先是上节制作的小程序会存在一个问题,比如最小化或者移动窗口到遮挡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);
这样可以解决坐标范围的限制

最终的显示结果如图:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值