打印

【资源分享-Matlab】

[复制链接]
693|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 zspzspzsp 于 2020-3-29 08:38 编辑

用及其正经的Matlab哄女朋友开心(好像Mupand也可以画心形函数甚至3D)
代码1:
[x,t] = meshgrid((0:24)/24,(0:.5:575)/575*17*pi-2*pi);
p = (pi/2)*exp(-t/(8*pi));
u = 1-(1-mod(3.6*t,2*pi)/pi).^4/2;
y = 2*(x.^2-x).^2.*sin(p);
r = u.*(x.*sin(p)+y.*cos(p));
figure('color','w'),view(-22,66), axis image off
surface(r.*cos(t),r.*sin(t),u.*(x.*cos(p)-y.*sin(p)),'EdgeC','n','FaceC','r')
light('pos',[-.25 -.25 1], 'style','local', 'col',[1 0.84 0.6]),lighting gouraud

代码2:
[X,Y,Z] = meshgrid(-1.2:.02:1.2,-3:.03:3,-1:.02:1.3);
f = smooth3((X.^2+9*Y.^2/9+Z.^2-1).^3-X.^2.*Z.^3-Y.^2.*Z.^3/10,'gauss');
v = uniquetol(getfield(isosurface(X,Y,Z,f,0),'vertices'),.15,'byrows',1);
n = isonormals(X,Y,Z,f,v);
ar = bsxfun(@rdivide,n*[0 -1 0;1 0 0;0 0 0],sqrt(sum(n.^2,2)));

[x,t] = meshgrid(0:.125:1,(-2:.2:10)*pi);
[p,q] = deal(pi/2*exp(-t/(8*pi)),1-(1-mod(3.6*t,2*pi)/pi).^4/2);
y = 2*(x.^2-x).^2.*sin(p);
[p,q] = deal(q.*(x.*sin(p)+y.*cos(p)),q.*(x.*cos(p)-y.*sin(p)));

figure color w, axis image vis3d off
h = surface(p.*cos(t),p.*sin(t),q,'EdgeColor','n','FaceColor','r');
arrayfun(@(t,i)copyobj(h,hgtransform('Mat',makehgtform('translate',5*v(i,:),...
   'axisrotate',ar(i,:),t))),asin(sqrt(sum(ar.^2,2)))',1:size(v,1))
view(32,12), set(camlight('head'),'color',[1 0.84 0.6]), lighting gouraud

二个.jpg (356.81 KB )

代码2

代码2

一个.jpg (298.36 KB )

代码1

代码1

使用特权

评论回复

相关帖子

沙发
LED2013| | 2020-3-28 22:09 | 只看该作者
怎么没来一个截图呢,显示下效果啊,这样才有吸引力和技术性

使用特权

评论回复
评论
zspzspzsp 2020-3-29 08:39 回复TA
已补发 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

9

帖子

0

粉丝