news 2026/4/17 18:38:47

使用MATLAB绘制3D心形图和玫瑰花图案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用MATLAB绘制3D心形图和玫瑰花图案

以下是两种不同的实现方法:

1. 3D心形图

方法一:参数方程心形

% 3D心形图 - 参数方程方法figure('Position',[100,100,1200,500]);% 子图1:参数方程心形subplot(1,2,1);% 创建网格[u,v]=meshgrid(linspace(0,2*pi,50),linspace(0,2*pi,50));% 心形参数方程x=(1-sin(u)).*cos(u).*(1+cos(v))+sin(u);y=(1-sin(u)).*sin(u).*(1+cos(v))+cos(u);z=-cos(u).*(1+cos(v));% 绘制3D心形surf(x,y,z,'EdgeColor','none','FaceAlpha',0.9);colormap('hot');shading interp;light('Position',[1,1,1],'Style','infinite');lighting gouraud;title('3D心形图 - 参数方程','FontSize',14);axis equal;grid on;view(45,20);

方法二:隐函数心形

% 子图2:隐函数心形subplot(1,2,2);% 定义网格范围[x,y,z]=meshgrid(-2:0.05:2,-2:0.05:2,-1:0.05:1);% 心形隐函数方程F=(x.^2+9/4*y.^2+z.^2-1).^3-x.^2.*z.^3-9/80*y.^2.*z.^3;% 提取等值面p=patch(isosurface(x,y,z,F,0));isonormals(x,y,z,F,p);% 设置心形属性set(p,'FaceColor',[0.9,0.2,0.2],'EdgeColor','none',...'FaceAlpha',0.8,'FaceLighting','gouraud');% 添加光照和美化camlight('headlight');lighting phong;title('3D心形图 - 隐函数','FontSize',14);axis equal;grid on;view(30,20);

2. 3D玫瑰花图案

方法一:经典3D玫瑰

% 3D玫瑰花图案figure('Position',[100,100,1200,500]);% 子图1:单朵玫瑰subplot(1,2,1);theta=linspace(0,12*pi,1000);% 增加圈数使花瓣更多k=5;% 花瓣数量参数% 3D玫瑰线参数方程x=sin(k*theta).*cos(theta);y=sin(k*theta).*sin(theta);z=cos(k*theta);% 绘制3D玫瑰线plot3(x,y,z,'r','LineWidth',2);hold on;% 添加渐变颜色num_points=length(theta);fori=1:num_points-1plot3(x(i:i+1),y(i:i+1),z(i:i+1),...'Color',[0.8,0.2,0.2,i/num_points],...'LineWidth',2);end% 添加散点装饰scatter3(x(1:10:end),y(1:10:end),z(1:10:end),...30,'filled','MarkerFaceColor','yellow');title('3D玫瑰花','FontSize',14);axis equal;grid on;view(45,30);

方法二:盛开的多层玫瑰

% 子图2:多层玫瑰subplot(1,2,2);% 参数设置n_petals=6;% 花瓣数n_layers=5;% 层数theta=linspace(0,4*pi,200);% 绘制多层玫瑰colors=jet(n_layers);% 使用彩虹色forlayer=1:n_layers r=layer*0.2;% 半径随层数增加% 3D玫瑰方程x=r*sin(n_petals*theta).*cos(theta);y=r*sin(n_petals*theta).*sin(theta);z=layer*0.3*ones(size(theta));% 绘制每层玫瑰plot3(x,y,z,'Color',colors(layer,:),'LineWidth',2);hold on;% 填充花瓣区域fill3(x,y,z,colors(layer,:),'FaceAlpha',0.2);end% 添加花蕊t=linspace(0,2*pi,50);[x_c,y_c]=pol2cart(t,0.1);plot3(x_c,y_c,zeros(size(x_c)),'y-','LineWidth',3);title('多层3D玫瑰花','FontSize',14);axis equal;grid on;view(45,30);

3. 高级版本:可旋转的3D心形玫瑰

% 高级版:可旋转的心形玫瑰figure('Position',[200,200,1000,800]);% 创建心形网格[u,v]=meshgrid(linspace(0,2*pi,100));% 心形方程x=16*(sin(u)).^3;y=13*cos(u)-5*cos(2*u)-2*cos(3*u)-cos(4*u);z=10*sin(v).*(1-abs(sin(u)));% 玫瑰花瓣效果rose_factor=5;% 玫瑰花瓣数量x_rose=x.*(1+0.1*cos(rose_factor*v));y_rose=y.*(1+0.1*cos(rose_factor*v));z_rose=z.*(1+0.1*sin(rose_factor*u));% 绘制3D图形surf(x_rose,y_rose,z_rose,...'FaceColor',[0.9,0.1,0.3],...'EdgeColor','none',...'FaceAlpha',0.9,...'FaceLighting','gouraud');% 添加光照light('Position',[1,0,1],'Style','infinite');light('Position',[-1,-1,0.5],'Style','infinite');lighting phong;% 美化图形colormap('hot');axis equal off;title('3D心形玫瑰','FontSize',16,'FontWeight','bold');% 添加旋转动画forangle=0:1:360view(angle,20);pause(0.01);drawnow;end

4. 简洁版本(一次性运行)

% 简洁版:同时绘制心形和玫瑰figure;% 心形subplot(1,2,1);t=linspace(0,2*pi,100);x=16*sin(t).^3;y=13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t);z=zeros(size(t));fill3(x,y,z,'r');title('2D心形(3D视角)');view(3);axis equal;grid on;% 玫瑰subplot(1,2,2);theta=linspace(0,10*pi,500);r=cos(5*theta);[x,y,z]=pol2cart(theta,r,theta/(5*pi));plot3(x,y,z,'m-','LineWidth',2);title('3D玫瑰花');axis equal;grid on;view(45,30);

参考代码 海洋声传播程序www.3dddown.com/csa/97361.html

使用说明:

  1. 运行方式

    • 可以将代码复制到MATLAB编辑器中,分块运行
    • 或者将每个部分保存为独立的.m文件运行
  2. 参数调整

    • 调整k值可以改变玫瑰花的花瓣数量
    • 修改n_layers可以改变玫瑰花的层数
    • 调整view()函数参数可以改变观察角度
  3. 可视化效果

    • 代码包含颜色渐变、光照效果和透明度设置
    • 高级版本包含旋转动画
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 6:31:12

PSO算法煤矿通风系统优化调控【附代码】

✅ 博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。✅成品或者定制,扫描文章底部微信二维码。(1) 煤矿通风系统建模与稳风倒机控制策略设计煤矿通风系统是保障井下作业人员生命安全…

作者头像 李华
网站建设 2026/4/18 6:31:57

CATIA订阅授权与传统授权模式对比分析

CATIA订阅授权与传统授权模式对比分析:企业如何选择更高效的产品管理模式开头:为什么你的CATIA授权问题总在上班前就出现了? 作为一家使用CATIA进行产品设计和研发的制造业企业,在授权管理方面常常遇到一些“令人头疼”的问题。比…

作者头像 李华
网站建设 2026/4/17 20:48:27

新员工上手时间缩短50%的实践:AIDF如何加速知识传承

【引言】企业管理者常面临这样的痛点:核心骨干离职,带走了宝贵的项目经验;新员工入职,面对海量的共享文件夹和混乱的版本号,陷入“找文档难、问人难、上手慢”的困境。据统计,传统模式下新员工培训周期往往…

作者头像 李华
网站建设 2026/4/18 6:31:26

【入门篇】一键搞定 Java 环境配置,从 0 跑出你的第一个程序

【入门篇】一键搞定 Java 环境配置,从 0 跑出你的第一个程序 恭喜你决定学习 Java!Java 是最受欢迎的编程语言之一,广泛用于后端开发、Android App、大数据等。作为零基础小白,最难的往往是环境配置。本指南手把手教你从下载 JDK…

作者头像 李华
网站建设 2026/4/18 11:02:57

基于Vue的迅读网上书城22f4d(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末

系统程序文件列表系统功能用户,书籍分类,书籍信息,书籍类型开题报告内容基于Vue的迅读网上书城开题报告一、选题背景与意义(一)选题背景随着互联网技术的飞速发展,电子商务已成为现代商业活动的重要组成部分,深刻改变了人们的购物…

作者头像 李华
网站建设 2026/4/18 11:05:13

Z-Image-Turbo终极指南:从零到二次开发的完整路径

Z-Image-Turbo终极指南:从零到二次开发的完整路径 如果你正在寻找一个能够快速生成高质量图像的开源模型,同时希望深入研究其底层机制并进行二次开发,那么Z-Image-Turbo无疑是一个值得关注的选择。作为2025年最快的生产就绪图像生成器之一&a…

作者头像 李华