- 积分
- 0
- 注册时间
- 2008-3-9
- 仿真币
-
- 最后登录
- 1970-1-1
|
各位会员,大家好!
如何在vc6.0中使用matlab的C++图形函数库,这个问题困扰我两个星期了,请大家伸手相助。
先介绍一下我混合编程的水平,通过阅读论坛里关于混合编程的帖子,目前我已经能够熟练掌握混合编程时的VC6.0工程设置方法,debug和release模式都可以调试了,matlab图形界面嵌入VC的方法也基本掌握,数学函数库有相关pdf可以参考,但是图形函数的调用还是一头雾水。
我阅读了MATLAB6p5\extern\include目录和MATLAB6p5\extern\include\cpp目录下的头文件,主要看了其中的少量注释,这些应该是相关图形库dll的接口函数,有很多函数还看不懂,我最关心的是图形库接口头文件libsgl.hpp,其中的函数大多有32个输入变量,并且变量类型都一样,编号递增,有些有输出变量,有些没有,举例如下:
inline mwArray axes(const mwVarargin &in1, const mwArray &in2=mwArray::DIN, const mwArray &in3=mwArray::DIN, const mwArray &in4=mwArray::DIN, const mwArray &in5=mwArray::DIN, const mwArray &in6=mwArray::DIN, const mwArray &in7=mwArray::DIN, const mwArray &in8=mwArray::DIN, const mwArray &in9=mwArray::DIN, const mwArray &in10=mwArray::DIN, const mwArray &in11=mwArray::DIN, const mwArray &in12=mwArray::DIN, const mwArray &in13=mwArray::DIN, const mwArray &in14=mwArray::DIN, const mwArray &in15=mwArray::DIN, const mwArray &in16=mwArray::DIN, const mwArray &in17=mwArray::DIN, const mwArray &in18=mwArray::DIN, const mwArray &in19=mwArray::DIN, const mwArray &in20=mwArray::DIN, const mwArray &in21=mwArray::DIN, const mwArray &in22=mwArray::DIN, const mwArray &in23=mwArray::DIN, const mwArray &in24=mwArray::DIN, const mwArray &in25=mwArray::DIN, const mwArray &in26=mwArray::DIN, const mwArray &in27=mwArray::DIN, const mwArray &in28=mwArray::DIN, const mwArray &in29=mwArray::DIN, const mwArray &in30=mwArray::DIN, const mwArray &in31=mwArray::DIN, const mwArray &in32=mwArray::DIN)
我学习了SCIE大哥:) 的【原创】MATLAB与VC界面混合编程尝试,现在正在研究nostalgica大哥:) 的【原创】VC6.0调用Matlab6.5数学库函数和图形库函数编程实例,随着使用的函数增多,对它们的困惑也多起来。
比如VC使用matlab里面的figure函数,SCIE和nostalgica大哥定义的参数名和matlab编写的GUI函数参数类似,我把它们进行了比较:
原GUI函数中figure调用格式:
h0 = figure('Units','points', ...
'Color',[0.8 0.8 0.8], ...
'Colormap',mat0, ...
'DeleteFcn','clear gui_*;', ...
'MenuBar','none', ...
'PointerShapeCData',mat1, ...
'Position',[88.5 272.25 438.75 309.75], ...
'Renderer','zbuffer', ...
'RendererMode','manual', ...
'Tag','Fig1', ...
'WindowButtonDownFcn','[gui_bdx,gui_bdy,gui_bnd] = nginput(0);', ...
'WindowButtonUpFcn',mat2);
在VC中调用figure的格式:
m_mwhFigure = figure(
mwArray("DoubleBuffer"), mwArray("On"),
mwArray("NumberTitle"), mwArray("Off"),
mwArray("Name"), strFigName,
mwArray("Menubar"), mwArray("None"),
mwArray("Color"), BKColor,
mwArray("Renderer"), mwArray("zbuffer"),
mwArray("Visible"), strVisible);
由此我不禁联想是否VC中调用matlab图形函数的格式都是像这样,加上mwArray("")就行了?
但是其它例如plot3()函数却不太相同:
matlab中plot3()函数
t=(0:0.02:2)*pi;
x=sin(t);
y=cos(t);
z=cos(2*t);
plot3(x,y,z,'b-',x,y,z,'bd');
view([-82,58]),box on,
VC中调用plot3()函数
mwArray pi=3.14;
mwArray t0= colon(mwArray(0), mwArray(0.02), mwArray(2));
mwArray t=t0*pi;
mwArray x=sin(t);
mwArray y=cos(t);
mwArray z=cos(2*t);
plot3(x,y,z,"b-",x,y,z,"bd");
view(m_mwhAxis,-82,58);
VC里面的plot3()函数调用格式几乎和matlab中一样,不用加mwArray("")。这种区别令我不解,到底matlab中图形函数如何调用,希望大家指点一二,谢谢。
测试程序界面:
[ 本帖最后由 bainhome 于 2008-11-5 18:25 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|