Matlab绘图——任意函数绕轴旋转的三维图

一.绕x轴旋转

将函数加到f = @(x)后面即可:

% 定义函数
clear
clc
f = @(x) sin(2*pi*x) .* exp(-0.1*x.^2) + 0.5*cos(3*pi*x) + 0.2*sin(5*pi*x).^2;
% 生成 x 和 theta 值
x_values = linspace(-2, 2, 1000); %范围-2到2
theta = linspace(0, 2*pi, 1000);
% 创建网格
[X, Theta] = meshgrid(x_values, theta);
% 计算对应的 y 值
Y = f(X);
% 将坐标系转换为极坐标系
X_rotated = X;
Y_rotated = Y .* cos(Theta);
Z_rotated = Y .* sin(Theta);
% 绘制三维图形
figure;
surf(X_rotated, Y_rotated, Z_rotated, 'EdgeColor', 'none');
xlabel('X');
ylabel('Y');
zlabel('Z');
% 添加网格和颜色映射
grid on;
colormap('parula');

二、绕y轴旋转

将代码修改为绕y轴旋转,只需调整坐标系的转换部分。以下是修改后的代码

% 定义函数
clear
clc
f = @(x) sin(2*pi*x) .* exp(-0.1*x.^2) + 0.5*cos(3*pi*x) + 0.2*sin(5*pi*x).^2;
% 生成 x 和 theta 值
x_values = linspace(0, 2*pi, 1000);
theta = linspace(0, 2*pi, 1000);

% 创建网格
[X, Theta] = meshgrid(x_values, theta);

% 计算对应的 y 值
Y = f(X);

% 将坐标系转换为极坐标系,这里修改为绕y轴旋转
X_rotated = Y .* cos(Theta);
Y_rotated = X;
Z_rotated = Y .* sin(Theta);

% 绘制三维图形
figure;
surf(X_rotated, Y_rotated, Z_rotated, 'EdgeColor', 'none');
xlabel('X');
ylabel('Y');
zlabel('Z');

% 添加网格和颜色映射
grid on;
colormap('parula');

最后:

如果你想要进一步了解更多的相关知识,可以关注下面公众号联系~会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!

5a8015ddde1e41418a38e958eb12ecbd.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

MatpyMaster

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

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

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

打赏作者

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

抵扣说明:

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

余额充值