三维矩阵可视化-matlab-如何绘制截面之平面和椭球面

三维矩阵的可视化

现在有三维的矩阵X,Y,Z,假如这是三个确定的条件。输出的y对应可视化的颜色。利用 slice 即可实现三维矩阵可视化:

%% 下面绘制slice的矩形立方体
deltax=linspace();
deltay=linspace();
deltaz=linspace();
xs = deltax;
ys = deltay;
zs = deltaz;
figure;
h = slice(X,Y,Z,y,xs,ys,zs);
set(h,'FaceColor','interp',...
    'EdgeColor','none')
camproj perspective
box on
colormap(jet);

截面

但是,四维图像能够反映的信息太少,如果slice出矩形立方体,那么得到的也不过是六个平面的信息。所以如果想要得到更多的信息,需要做截面。首先根据自己矩形上的三个点,确定一个平面:

% 平面截面
syms x y z
A=[5,3,1];%A,B,C的坐标由自己定义。
B=[6,3,7];
C=[5,7.5];
D=[ones(4,1),[[x,y,z];A;B;C]];%由空间解析几何的内容知道D的行列式等于零就是平面方程。
detd=det(D);
disp(strcat('平面方程为:',char(detd),'=0'))

然后slice画出截面:

[xsurf,ysurf] = meshgrid(...);
zsurf = xsurf+ ysurf+2;
%根据上述确定的平面xyz表达式 写成z=....形式
slice(X,Y,Z,y,xsurf,ysurf,zsurf)

球面

但是,截面又可能太丑,怎么画成一个美丽的椭球面呢?最关键的地方在于xsurf、ysurf和zsurf要通过matlab自带的椭球形函数得到。

[X,Y,Z]=meshgrid(...);%自己设置xyz的矩阵大小
% 例如构建以(5,20,7)为坐标原点的椭球形,其长轴为(4,25,6)
% 画一个椭球形状
[xsurf,ysurf,zsurf] = ellipsoid(5,20,7,4,25,6);
h = slice(X,Y,Z,y,xsurf,ysurf,zsurf);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值