matlab_绘制三维切片图及四维图_slice

1.三维切片图

三维曲面图的操作对象是三维曲面,而三维切片图的操作对象是三维实心体

三维曲面图需要三个指标,且三个指标都是二维的;而三维切片图需要四个指标,且四个指标都是三维的,多的那一个指标,理解起来其实就是图形由曲面变成了实心体,第四个指标表示三维体的内部情况

%三维切片图需要四个指标,且X,Y,Z,V都是三维的,多了一个v其实就是由曲面变成了实心体,v表示三维体的内部情况
clc;clear;close all;
[X,Y,Z] = meshgrid(-2:.2:2);%由一维扩充成三维,这样生成的X,Y,Z都是三维的
V = X.*exp(-X.^2-Y.^2-Z.^2);%V也是三维的

xslice = [-1.2,0.8,2];%画平行于yoz的切平面   
yslice = [];%画平行于xoz的切平面 
zslice = 0;%画平行于xoy的切平面 
slice(X,Y,Z,V,xslice,yslice,zslice)

%面
x=-2:.2:2;y=-2:.2:2;z=-2:.2:2;
[X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),'v4');%插值
surf(X,Y,Z)

%把面变成实心体,对实心体切面就是三维切片图
x=-2:.2:2;y=-2:.2:2;z=-2:.2:2;
[X,Y,Z] = meshgrid(-2:.2:2);%由一维扩充成三维,这样生成的X,Y,Z都是三维的
V = X.*exp(-X.^2-Y.^2-Z.^2);%V也是三维的

xslice = [-1.2,0.8,2];%画平行于yoz的切平面   
yslice = [];%画平行于xoz的切平面 
zslice = 0;%画平行于xoy的切平面 
slice(X,Y,Z,V,xslice,yslice,zslice)
hold on
[X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),'v4');%插值
surf(X,Y,Z)

2.四维图

%四维图其实是动态三维图,第四维为时间,只能用动图或视频表示
[x,y,z] = meshgrid(-2:.2:2,-2:.25:2,-2:.16:2);
v = x.*exp(-x.^2-y.^2-z.^2);
xslice = [-1.2,.8,2];
yslice = 2;
zslice = [-2,0];
[xsp,ysp,zsp] = sphere;
slice(x,y,z,v,[-2,2],2,-2)
for i = -3:.2:3
    hsp = surface(xsp + i,ysp,zsp);
    rotate(hsp,[1 0 0],90)
    xd = get(hsp,'XData');
    yd = get(hsp,'YData');
    zd = get(hsp,'ZData');
    delete(hsp)
    hold on
    hslicer = slice(x,y,z,v,xd,yd,zd);
    axis tight
    xlim([-3,3])
    view(-10,35)
    drawnow
    delete(hslicer)
    hold off
end

在这里插入图片描述

  • 12
    点赞
  • 151
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海阔平

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值