问题描述
- 求帮忙详解如何绘制溶解度曲面图,多谢
-
,已知溶剂组成X,温度,及相对应的溶解度Y共有多组数据,如何利用所给数据绘曲面图
解决方案
折线图好绘制,但曲面图就比较麻烦。一般的 GDI 库不支持这样的功能,用 Matlib 可以实现曲面图。
如果用 VC,可以考虑使用 teechart、 OpenGL 等等,但实现会比较复杂:
MFC TeeChart用法整理 三(三维图)
opengl地形生成
解决方案二:
Matlab提供了mesh函数和surf函数来绘制三维曲面图。mesh函数用来绘制三维网格图,而surf用来绘制三维曲面图,各线条之间的补面用颜色填充。
网格图(mesh)中线条有颜色,线条间补面无颜色。曲面图(surf)的线条都是黑色的,线条间补面有颜色。进一步观察,曲面图补面颜色和网格图线条颜色都是沿z轴变化的。用plot3 绘制的三维曲面实际上由三维曲线组合而成。可以分析plot(x’,y’,z’)所绘制的曲面的特征。
其调用格式为:
mesh(x,y,z,c)
surf(x,y,z,c)
一般情况下,x,y,z是维数相同的矩阵,x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。c省略时,Matlab认为c=z,也即颜色的设定是正比于图形的高度的。这样就可以得到层次分明的三维图形。当x,y省略时,把z矩阵的列下标当作x轴的坐标,把z矩阵的行下标当作y轴的坐标,然后绘制三维图形。当x,y是向量时,要求x的长度必须等于z矩阵的列,y的长度必须等于必须等于z的行,x,y向量元素的组合构成网格点的x,y坐标,z坐标则取自z矩阵,然后绘制三维曲线。
例515 用三维曲面图表现函数 :
为了便于分析三维曲面的各种特征,下面画出3种不同形式的曲面。
%program 1
x=0:0.1:2*pi;
[x,y]=meshgrid(x);
z=sin(y).*cos(x);
mesh(x,y,z);
xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
title('mesh'); pause;
%program 2
x=0:0.1:2*pi;
[x,y]=meshgrid(x);
z=sin(y).*cos(x);
surf(x,y,z);
xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
title('surf'); pause;
%program 3
x=0:0.1:2*pi;
[x,y]=meshgrid(x);
z=sin(y).*cos(x);
plot3(x,y,z);
xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
title('plot3-1');grid;
解决方案三:
那就把数据动态的传入,然后绘制曲面图,不过我没做过,我之前做了一个绘制折线图的,今天刚发的博客,你可以去看看,我只能帮你到这里了
http://blog.csdn.net/mercuryvenus/article/details/42262731