文章目录 1.三维切片图2.四维图
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 offend 24504652