数模更新篇-7-绘制三维图-4-符号函数和隐函数三维图形的绘制

符号函数的绘制

所谓符号函数就是用符号来表示的函数

plot3函数

类似于plot函数,可以认为化的是三维的函数图像

% t = 0: 0.1: 4*pi;   % 符号是t,t从0变动到4pi,间隔设置为0.1
t = linspace(0,4*pi,100);  % 符号是t,t从0变动到4pi,等分为100个点
x = sin(t)+1; % 利用t计算x的值
y = cos(t);  % 利用t计算y的值
z = t; % 利用t计算z的值
plot3(x,y,z)  % 绘制三维空间下的折线图
plot3(x,y,z,'r--') 

在这里插入图片描述

fplot3函数

syms t  % 符号是t
x = sin(t)+1;
y = cos(t); 
z = t;
fplot3(x,y,z) % 默认t的变化范围为[-5 5]
fplot3(x,y,z,[0 4*pi]) % 修改t的变化范围为0至4pi

在这里插入图片描述
相较于上一个绘图的步骤来说,该函数绘制图象是更为简便,所以常用次函数来绘制三维图形

fmesh函数,fsurf函数,fcontour函数

%% fmesh 三维网格图 (2016a版本推出的函数,老版本Matlab用的是ezmesh函数,未来版本可能会被淘汰)
syms x y 
z=x^2+y^2;
fmesh(z) % 默认x的变化范围和y的变化范围都是[-5 5]
fmesh(z,[-2 2 -4 4]) % 修改x的变化范围和y的变化范围分别为[-2 2][-4 4]
% axis vis3d  % 冻结屏幕高宽比,使得一个三维对象的旋转不会改变坐标轴的刻度显示
% axis equal  % 设置屏幕高宽比,使得每个坐标轴的具有均匀的刻度间隔
fmesh(z,[-2 2 -4 4],'MeshDensity',11)   % 设置每个方向计算的点数

% 画一朵花花送给亲爱的Ta
syms u v
r = 2 + sin(7.*u + 5.*v);
x = r.*cos(u).*sin(v);
y = r.*sin(u).*sin(v);
z = r.*cos(v);
% 可以直接用乘号
% r = 2 + sin(7*u + 5*v);
% x = r*cos(u)*sin(v);
% y = r*sin(u)*sin(v);
% z = r*cos(v);
fmesh(x,y,z,[0 2*pi 0 pi])
alpha(0.8)

%% fsurf 三维曲面图 (2016a版本推出的函数,老版本Matlab用的是ezsurf函数,未来版本可能会被淘汰)
syms x y 
z=x^2+y^2;
fsurf(z) % 默认x的变化范围和y的变化范围都是[-5 5]
fsurf(z,[-2 2 -4 4]) % 修改x的变化范围和y的变化范围分别为[-2 2][-4 4]
% axis vis3d  % 冻结屏幕高宽比,使得一个三维对象的旋转不会改变坐标轴的刻度显示
% axis equal  % 设置屏幕高宽比,使得每个坐标轴的具有均匀的刻度间隔
fsurf(z,[-2 2 -4 4],'MeshDensity',11)   % 设置每个方向计算的点数

% 画一朵花花送给亲爱的Ta
syms u v
r = 2 + sin(7.*u + 5.*v);
x = r.*cos(u).*sin(v);
y = r.*sin(u).*sin(v);
z = r.*cos(v);
fsurf(x,y,z,[0 2*pi 0 pi])

%% fcontour 绘制等高线 (2016a版本推出的函数,老版本Matlab用的是ezcontour函数,未来版本可能会被淘汰)
syms x y 
z=x^2+y^2;
fcontour(z) % 默认x的变化范围和y的变化范围都是[-5 5]
fcontour(z,[-2 2 -4 4]) % 修改x的变化范围和y的变化范围分别为[-2 2][-4 4]
fcontour(z,'fill','on') % 在等高线线条间进行填充

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

隐函数的绘制

f = @(x,y,z) x.^2 + y.^2 - z.^2;  % 函数句柄(在拟合那一节里面介绍过),这里要注意,要用点运算符
fimplicit3(f)
xlabel('x轴');  ylabel('y轴');  zlabel('z轴');  % 加上坐标轴的标签
interval = [-5 5 -5 5 0 5];   % 指定范围
fimplicit3(f,interval)
fimplicit3(f,interval,'EdgeColor', 'none', 'FaceAlpha',0.5)  % 去掉边缘颜色,调整透明度


% fimplicit3(f,interval) 为 x、y 和 z 指定绘图区间。
f = @(x,y,z) (x.^2+(9/4)*y.^2+z.^2-1).^3-x.^2.*z.^3-(9/80)*y.^2.*z.^3;
fimplicit3(f,[-1.5,1.5,-1.5,1.5,-1.5,1.5],'EdgeColor', 'none', 'FaceAlpha',0.5);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值