matlab与VC++进行混合编程

为了实现快速地理系统的或者其它工程性的科学平台等等:
我们想了很多方案:
方案一:用OpenGL与C++,选一个开发平台如:Qt,Vc++,进行开发;
方案二:用matlab与VC++进行混合编程;

第一种方法的优点和缺点:
  1.效率高,灵活性强;因为OpenGl进行图形的绘制比较底层,C++来实现数据的处理和用数据作为输入来实现OpenGl的实现等高图,3D图,由于是直接调底层的东西实现,所以效率和灵活性都很强。再就是以后跨平台的时候比较容易实现,和以后维护和改进的空间大;
   缺点是:开发周期长,效率低,要求算法和知识面广。

第二种方案:
   实现的方式有很多种:
1:主要是利用动态链接库.dll文件,来实现,利用matlab的mcc编译器来生成.h,.c,dll,lib,ctf文件;并且调用matlab的mrc內库dll进行动态链接的实现: 这种方式有由于.m函数进行生成,所以如果调用的函数比较多的时候工程里面可能就要包含很多.m生成的文件不便于管理;

 2.这种方式其实是第1种方式的改进利用COM技术进行混编这两种方式都可以脱离matlab环境进行编程,但要安装mrc.exe运行环境就行不用安装matlab,这个文文件在matlab只有70M,所以还是能够接受的。为什么说这种方式是第一种方式的改进呢?那是因为通过com微软提出来的控件方式有很多好处:一:方便以后的扩展和维护,直接更新com控件就可以了,不用全部工程进行编译运行,因为它是把工程函数独立出来,为外面提供了很多统一的接口,只要接口不变,里面要改进工程可以在里面改进,接口不变外面就能够统一调用,这个就体现了接口编程的思想,这个思想在java中用的就很广泛了。具体实现大概是:利用matlab工具buiding进行生成com组件,其中可以添加函数.m文件为方法,属性等等,这些生成后都是可以为外面提供统一的接口;

3.matlab引擎客户端和服务器端实现混合编程,但不能脱离环境;

4.matlab生成.exe文件,利用VC调用来实现混合编程,不能脱离环境;

由于我们的项目前提条件是要脱离环境,所以要选第一种方案或者第二种方案中的1或2;因为考虑到我们的项目周期比较短,而且人手资源不够,我们选择matlab进行混合编程;并且是1


 第一步要实现:脱离环境进行调用matlab利用.m生成的dll函数来实现图形绘制;

第二步:把图片从对话框形式转为放在VC实现的图形界面里面的图片显示框中:可以利用matlab中可以弹出的图片放在黏贴板中的体现,让后再VC中把黏贴板中的数值拿到放在图片框中实现显示,但要注意实现刷新问题;

第三步:利用克里金等插值算法实现数据的网格化;利用网格后的数据(x,y,z)可以利用matlab直接对于函数来实现等高线,3D图像的绘制;

第四步:软件的调试和功能的完善和操作性的完善,由于这个部分只是一个大系统的一个小部分,所以我们要提供一个借口出来为接入大系统做准备;


                                                                                        2013.7.28










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值