matlab将一幅图片映射到曲面上,第三章_Matlab图形绘制教程.ppt

2、griddata函数,用来产生经插值后均匀间隔数据作图。常用的调用方法是:[XI,YI,ZI] = griddata(x,y,z,XI,YI,’method’),其中x,y,z来自关系式z=f(x,y),也可以是离散的数据点,ZI是有XI和YI插值后得到的对应点。其中method可以是linear,cubic和nearest。 V1 = [1 1 0; -1 1 0; -1 -1 0; 1 -1 0]; x = V1(:, 1);y = V1(:, 2);z = V1(:, 3); xmin = min(x); xmax = max(x); ymin = min(y); ymax = max(y); x0 = linspace(xmin, xmax, 20); y0 = linspace(ymin, ymax, 20); [x0, y0] = meshgrid(x0, y0); z0 = griddata(x, y, z, x0, y0, 'v4'); figure; hold on; view(3); plot3(x, y, z, 'r.', 'MarkerSize', 20); plot3(x0, y0, z0, 'k.'); col = zeros(size(z0)); col(:, end) = 1;mesh(x0, y0, z0, col) 示例1: x=10*(0.5-rand(1000,1)); y=10*(0.5-rand(1000,1)); z=sqrt(x.*x+y.*y).*(9.995+rand(1000,1)/100); clf; plot3(x,y,z,'rp','markerSize',4); hold on; [xx,yy]=meshgrid(linspace(min(x),max(x)),linspace(min(y),max(y))); zz=griddata(x,y,z,xx,yy,'cubic'); mesh(xx,yy,zz); shading interp; colormap gray; hold on; 示例2: 示例3: x = rand(100,1)*4-2; y = rand(100,1)*4-2; z = x.*exp(-x.^2-y.^2); ti = -2:.25:2; [xi,yi] = meshgrid(ti,ti);zi = griddata(x,y,z,xi,yi); mesh(xi,yi,zi), hold on, plot3(x,y,z,'o'), hold off 3、TriScatteredInterp函数,该函数可以看作是griddata的升级版,可以取代griddata对离散数据点进行插值。主要用于不规则数据点的插值。主要调用方法:F= TriScatteredInterp(x,y,z),相当于定义了一个关于x,y,z的插值函数。示例1: x=10*(0.5-rand(1000,1)); y=10*(0.5-rand(1000,1)); %生成随机数据 z=sqrt(x.*x+y.*y).*(9.995+rand(1000,1)/100);clf; plot3(x,y,z,‘rp’,‘markerSize’,4); %绘制三维散点图 hold on;F=TriScatteredInterp(x,y,z); %可以理解为定义了一个函数F(.) [xx,yy]=meshgrid(linspace(min(x),max(x)),linspace(min(y),max(y))); zz=F(xx,yy); %把x,y的坐标输入其中,可以计算出插值的z维度数值 mesh(xx,yy,zz); %然后可以采用常规的方法绘制曲面 shading interp;colormap gray;hold on; 注:1、对F还可以设置方法F.method=‘nature’/’linear ’/’nearest’,前两个针对连续曲线。2、类似的一些地形图的绘制也是通过这种插值的方法进行绘制。 示例2: z = x.^2 + y.^2; F = TriScatteredInterp(x,y,z); [xi,yi] = meshgrid(-0.3:.02:0.3, -0.0688:0.01:0.0688); zi = F(xi,yi); mesh(xi,yi,zi) xlabel('Interpolated surface', 'fontweight','b'); figure; zi = xi.^2 + yi.^2; mesh(xi,yi,zi) (8)四维表现图 针对v=v

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值