VC与Matlab接口在魔方仿真中的应用

点赞:5883 浏览:19886 近期更新时间:2024-01-27 作者:网友分享原创网站原创

摘 要 :通过Visual C++与Matlab混合编程,在VC++编辑环境中调用Matlab引擎库,实现对仿真魔方还原的实时显示,可发挥Visual C++开发环境强大,执行速度快,软件自动生成和可视化的资源编辑功能,又可以充分发挥Matlab强大的数值计算、数据处理、系统分析、图形显示,甚至是符号运算功能,大大简化了C语言直接编程的繁琐,提高了开发效率.

关 键 词 :Matlab;Visual C++;引擎;接口;仿真

中图分类号:TP312 文献标识码:A 文章编号:1009-3044(2013)25-5730-05

Visual C++是微软公司推出的一款面向对象的程序设计工具.Visual C++具有强大的功能、友好的开发环境,直到今天仍然是Windows平台上应用程序开发的主要工具之一.Visual C++将程序代码的编辑、编译、连接、调试等功能集成于一体,为使用者提供了一个既完整又方便的开发环境.Visual C++与Windows操作系统的紧密联系,再加上其强大的MFC,使得Visual C++编写的应用程序具有尺寸小、速度快、效率高等优势.

Matlab是目前流行、应用广泛的科研计算软件,具有高效的矩阵运算能力,强大的数值运算、符号运算和绘图功能.开放式的可扩展环境和丰富的工具箱使其编程极为简单,提供灵活的程序设计流程、便捷的与其他程序和语言接口的功能.

VC与Matlab接口在魔方仿真中的应用参考属性评定
有关论文范文主题研究: 关于魔方的文章 大学生适用: 高校大学论文、学术论文
相关参考文献下载数量: 33 写作解决问题: 毕业论文怎么写
毕业论文开题报告: 论文提纲、论文小结 职称论文适用: 职称评定、高级职称
所属大学生专业类别: 毕业论文怎么写 论文题目推荐度: 免费选题

以Visual C++为基础,调用Matlab引擎实现混合编程,可以充分运用Matlab强大的运算能力,实现两者优点的结合,提高了程序的执行速度、应用范围和实用价值.在控制系统仿真方面,可以非常简单的实现对控制系统的运算、分析、仿真和实现,节省了大量的工作和时间,提高了效率.该文通过介绍仿真魔方的实现过程,将混合编程的思想充分运用,并且也给魔方的玩法增加了趣味性,同时也为编程爱好者们提供了一个更加简便、迅速的编程仿真方法.


1.Matlab引擎介绍

Matlab引擎是指一组Matlab提供的接口函数,采用C/S(客户机/怎么写作器)模式,Matlab作为后台怎么写作器,其支持C语言,并用C程序作为前台客户机,通过Windows动态控件与怎么写作器通信,向Matlab Engine传输命令和数据信息,并从Matlab Engine接受信息.我们可以在前台调用这些接口参数,实现程序进程之间的数据传递,对Matlab Engine进行控制.Visual C++调用Matlab引擎一般可以实现以下功能:

1)通过调用Matlab图形函数库,在Matlab中实现处理一些Visual C++编程比较复杂且难以处理的图形显示任务.在这里,可以把Matlab看作是一个强大的图形函数库.

2) 在Visual C++通用编程平台输入、输出功能强大,编写图形界面简单的基础上,结合Matlab编程高效和计算能力强大的优点,为特定的任务建立一个高效、界面友好的系统,可以实现缩短开发周期,降低开发难度的目的.

3) 处理通过调用数学函数或者子程序的数据.此时,Matlab是一个功能强大,灵活高效的数学函数库.

通过Matlab引擎,系统将打开一个Matlab进程,可以完成计算和绘图等工作,并且Matlab引擎支持所有的数据结构.Matlab引擎与其他接口程序相比,Matlab引擎子简单也最全面,其工作时只需要一小部分引擎通信函数库与程序相连,可以节约系统资源,充分利用网络资源,可以实现将任务繁重的工作放到性能较好,能力较强的计算机上,再通过网络运行Matlab引擎.

2.仿真魔方的构建

显示的原理步骤:首先建立一个以魔方的中心块为中心点的三维空间直角坐标系,定义有关魔方的每一个小块的八个顶点和六个面的多维数组,对魔方状态进行初始化,也是对坐标系的初始化;将魔方复原总共会有十八种旋转方式,定义出每一种旋转方式所需要变动的魔方块,将三维坐标系根据旋转轴的不同投影成不同的平面坐标系,在接收到旋转的指令后,确定进行旋转的魔方块表面上当前的每一点的坐标和与横轴的夹角;旋转的时候每次改变一个特定的角度,将前面一个状态的图像擦除后显示转动后的图像,循环执行,直到完成此次旋转,接收到下一次旋转的指令;重复以上操作,最后便显示出复原后的魔方.

通过Matlab计算引擎的方法,实现VC++和Matlab的通信,即接收从VC++传来的指令,把旋转的魔方的每一步操作实时的显示出来.

3.动态显示的实现

3.1 软件设计流程图

3.2 创建工程

3.3 Visual C++与Matlab接口环境的配置

1)打开“工具”菜单,选择“选项”子菜单中的中的“目录”选项卡.在“目录”选项卡中选择“Include files”,然后在路径中添加“C:\MATLAB7\EXTERN\INCLUDE”.这是Matlab引擎库头文件engine.h所在的目录.再在“目录”选项卡中选取“Library files”,在路径中添加“C:MATLAB7\EXTERN\LIB\WIN32\MICROSOFT\MSVisual C++60”,引擎库用到的动态链接全部都在此目录下.

2)导入Matlab引擎对应的静态链接库.在菜单“工程”中选项“设置”下,选择“连接”选项卡,在“对象\库模块”中添加libmx.lib, libmex.lib和libeng.lib.这三个文件名之间以空格分开.此外,这一步的设置还可以如下:在Visual C++环境中,选择“工程”菜单中的“添加到工程”命令,然后选择文件选项,将“C:MATLAB7\EXTERN\INCLUDE\LIB\WIN32\MICROSOFT\MSVC60”目录下的libmx.lib, libmex.lib和libeng.lib文件添加到工程中. 3.4 相关控件功能代码的编辑

1)在图2输出的对话框里,利用工具栏的按钮在对话框里生成按钮Button1,点击右键“Properties”,修改按钮的名称为Initialize.打开菜单“View”,选取“Class Wizard”,点击“IDC_BUTTON1”,在右侧选择“BN_CLICKED”,即选择单击按钮Initialize添加程序完成其功能,点击“Add Function”,完成对按钮的操作.

5.结论

以Visual C++为基础,调用Matlab引擎库实现混合编程,可以扬长避短的发挥各自的优点,实现科学计算、数据仿真等复杂繁琐的设计.通过仿真魔方这个应用可以看出,Visual与Matlab混合编程可以简化编程代码,节约存储空间,这种方法极大提高了开发效率,缩短了开发周期,同时也有利于提高软件的处理功能、可靠性、可维护性和可扩展性.此外,本设计还有不足之处,如何把软件中混乱的魔方实现一键还原,即按下还原按钮,软件自动的把魔方还原的过程动态实现出来是一个很值得探究的方向.