MATLAB之心形图绘制
一、静态心形图绘制
(1)效果展示
(2)静态心形原始代码
1 clc; 2 clear all; 3 const=0; 4 % 均布三位坐标 5 x=-5:0.05:5; 6 y=-5:0.05:5; 7 z=-5:0.05:5; 8 [x,y,z]=meshgrid(x,y,z); % 绘制三位坐标点 9 % 心形函数 10 f=(x.^2 + (9/4)*y.^2 + z.^2 - 1).^3 - x.^2.*z.^3 - (9/80)*y.^2.*z.^3-const; 11 p=patch(isosurface(x,y,z,f,0)); % 连接各点,组成封闭的图形 12 set(p, 'FaceColor', 'red', 'EdgeColor', 'none'); 13 daspect([1 1 1]) 14 view(3) 15 camlight; lighting phong
二、动态心形图绘制
(1)效果展示
如上图所示
(2) 动态心形源代码
1 clc; 2 clear; 3 filename='heart'; 4 % 三位坐标均布 5 [x,y,z]=meshgrid(linspace(-3,3)); 6 % 心形函数 7 p=(x.^2+(9/4)*y.^2+z.^2-1).^3-x.^2.*z.^3-(9/80)*y.^2.*z.^3; 8 [faces,verts,colors] = isosurface(x,y,z,p,0,x); 9 % 循环绘制心形形成的过程 10 for i=1:9 11 figure(i) 12 pp=patch('Faces',faces(1:284+i*1000,:),'Vertices',verts); 13 set(pp,'FaceColor','red','EdgeColor','none'); 14 view(-30,24) 15 axis off 16 axis equal 17 axis tight 18 camlight 19 lighting gouraud 20 pause(0.5) 21 f(i) = getframe(i); 22 imind = frame2im(f(i)); 23 [imind,cm] = rgb2ind(imind,256); 24 if i == 1 25 26 imwrite(imind,cm,filename,'gif', 'Loopcount',inf,'DelayTime',0.5); 27 else 28 imwrite(imind,cm,filename,'gif','WriteMode','append','DelayTime',0.5); 29 end 30 close(i) 31 end
作者:Sunny_SunShine
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
人必有所执,方能有所成。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)