MATLAB的slice函数可用于绘制三维体切片平面,实现多个图片堆叠图。今天主要是实例讲解MATLAB编程实现多个图片堆叠图的绘制。
1.slice函数
函数功能:三维体切片平面
语法
slice(X,Y,Z,V,xslice,yslice,zslice)
slice(V,xslice,yslice,zslice)
slice(___,method)
slice(ax,___)
s = slice(___)
说明
slice(X,Y,Z,V,xslice,yslice,zslice) 为三维体数据 V 绘制切片。
指定 X、Y 和 Z 作为坐标数据。使用以下形式之一指定 xslice、
yslice 和 zslice 作为切片位置:
要绘制一个或多个与特定轴正交的切片平面,请将切片参数指定为标量
或向量。
要沿曲面绘制单个切片,请将所有切片参数指定为定义曲面的矩阵。
slice(V,xslice,yslice,zslice) 使用 V 的默认坐标数据。V 中
每个元素的 (x,y,z) 位置分别基于列、行和页面索引。
slice(___,method) 指定插值方法,其中 method 可以是 'linear'
(默认值)、'cubic' 或 'nearest'。可将此选项与上述语法中的任何
输入参数一起使用。
slice(ax,___) 在指定坐标区而不是当前坐标区 (gca) 中绘图。
s = slice(___) 返回创建的 Surface 对象。slice 为每个切片返回
一个 Surface 对象。
2.实例
实例1
程序
clc;
clear all;
close all;
%slice函数 三维体切片平面
[X,Y,Z] = meshgrid(-5:.2:5);
V = X.*exp(-X.^2-Y.^2-Z.^2);
xslice = [-4.5 -2.5 0 2.5 4.5];
yslice = [];
zslice = 0;
S = slice(X,Y,Z,V,xslice,yslice,zslice);
N = length(S);
for i = 1:N
set(S(i),'EdgeColor','none');
end
% colormap winter
colormap(gray)
colorbar
xlabel('x');
ylabel('y');
zlabel('z');
view(-6,22);
运行结果
实例2
程序(旋转坐标轴)
clc;
clear all;
close all;
x = linspace(-2,2,40);
y = x;
[x,y] = meshgrid(x,y);
z = -20:4:20;
figure;
hold on;
for i = 1:length(z)
Z = z(i)*ones(size(x));
c = x.^2.*y.^2*z(i);
surf(x,Z,y,c)%注意顺序
end
%shading - 设置颜色着色属性
shading interp %通过在每个线条或面中对颜色图索引或真彩色值进行插值来改变该线条或面中的颜色。
xlabel("X");
zlabel("Y");
ylabel("Z");
colorbar;
view(85,20);
set(gcf,'unit','normalized','position',[0.1 0.1 0.8 0.4]);
运行结果
3.参考内容
[1] 知乎作者控制论控制不了我的文章,链接:
https://www.zhihu.com/question/597457280/answer/3003129610
本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。
作 者 | 郭志龙
编 辑 | 郭志龙
校 对 | 郭志龙
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved