计算机图形学OpenGL中的MFC框架划线功能实现

1、安装VS中的MFC框架;

2、新建一个MFC文件,选择单文档,高级功能全部不勾选,其他的不用管,建立(如下图);

 

3、将OpenGLView.cpp和OpenGLView.h文件放入该新建文件的根目录;

4、在解决方案资源管理器那里添加OpenGLView的头文件和cpp文件;(这里的cpp和h文件内部已经编译好了)

5、在调试——调试属性的编译器——输入那里将opengl32.lib;glu32.lib添加上去;

 6、因为VS版本问题,有的OpenGLView和DrawLineView的头文件是“pch.h”,有的是“stdx...h”,需要将“stdx...h”都改成“pch.h”。

/7、将DrawLineView的cpp文件和h文件里面的继承的父类CView都改成COpenGLView,COpenGLView继承自它原本的CView,不用修改。

8、做到这里,如果你的项目没有报错,成功运行之后看到的应该是一个白板,没有Display里面的三角形;

如果想要显示三角形画面,需要将DrawLineView的cpp文件和h文件里面的OnDraw函数给注释掉;

然后再次运行,三角形就可以显示在屏幕上了。

9、在DrawLineView.cpp文件里面的类向导里面添加鼠标响应信息,只有这样操作系统才会自动调用,如下图,再点击确定;(如果鼠标响应消息不是通过类向导添加的,而是直接复制粘贴过来的,系统不会自动调用,即系统不会响应这些函数,画面也不会出现划线功能)

有的同学可能从方法那里添加,那样不行;从cpp和h文件里手工添加,也不行,都会缺失MESSAGEMAP那里的代码,从而不能建立真正的消息映射。

 10、在鼠标响应信息里面写上相应代码,并且在DrawLineView.cpp文件里面写上划线的实现算法,比如DDA算法;ps:如果是自己写的鼠标响应信息,鼠标响应消息里面需要调用Invalidate(false);

(后续各种界面交互,都是类似逻辑,在消息响应程序里修改某些变量,而这些变量在绘制程序里使用。因此在消息响应程序修改变量后,需要调用Invalidate函数通知系统,变量修改导致当前画面失效(即不再反映现实)了,画面需要重绘)

在DrawLineView.cpp文件里面的Display里面写格子的代码(可以用循环实现);

格子和划线功能就实现了。

11、以上记录的是操作步骤,至于具体算法的代码就不放了,避免大家的作业雷同。

具体清屏函数和改变颜色的函数在此也不详细介绍。

12、以下是可能出现的报错:

 老师的解决思路:

1、opengl32.lib和glu32.lib可能没有弄好,导致OpenGL那些函数链接出问题;

2、OnSize这个可能是别的原因;

3、包含文件处理的不好,导致函数重复定义了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值