用MATLAB情人节表白

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用MATLAB情人节表白

% volume data

[X,Y,Z] = meshgrid(linspace(-3,3,101));

F = -X.^2.*Z.^3 - (9/80).*Y.^2.*Z.^3 + (X.^2 + (9/4).*Y.^2 + Z.^2 - 1).^3;

% initialize figure

hFig = figure('Menubar','none', 'Color','w');

pos = get(hFig, 'Position');

set(hFig, 'Position', [pos(1)-0.15*pos(3) pos(2) 1.3*pos(3) pos(4)]);

% initialize axes

hAxes = axes('Parent',hFig, 'DataAspectRatio',[1 1 1], ...

'XLim',[30 120], 'YLim',[35 65], 'ZLim',[30 75]);

view(-39,30);

axis off

% Fill the inside of the mesh with an isosurface to

% block rendering of the back side of the heart

patch(isosurface(F,-1e-3), 'FaceColor','w', 'EdgeColor','none')

hidden on % hidden surface removal

% contours in the y-z plane

for iX = [35 38 41 45 48 51 54 57 61 64 67]

plane = reshape(F(:,iX,:), [101 101]);

cData = contourc(plane, [0 0]);

xData = iX.*ones(1,cData(2,1));

line(xData, cData(2,2:end), cData(1,2:end), ...

'Color','r', 'Parent',hAxes)

pause(.1)

end

% contours in the x-z plane

for iY = [41 44 47 51 55 58 61]

plane = reshape(F(iY,:,:), [101 101]);

cData = contourc(plane, [0 0]);

yData = iY.*ones(1,cData(2,1));

line(cData(2,2:end), yData, cData(1,2:end), ...

'Color','r', 'Parent',hAxes)

pause(.1)

end

% contours in the x-y plane

for iZ = [36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 69 71] plane = F(:,:,iZ);

cData = contourc(plane, [0 0]);

startIndex = 1;

if size(cData,2) > (cData(2,1)+1)

startIndex = cData(2,1)+2;

zData = iZ.*ones(1,cData(2,1));

line(cData(1,2:(startIndex-1)), cData(2,2:(startIndex-1)), zData, ...

'Color','r', 'Parent',hAxes)

end

zData = iZ.*ones(1,cData(2,startIndex));

line(cData(1,(startIndex+1):end), cData(2,(startIndex+1):end), zData, ...

'Color','r', 'Parent',hAxes)

pause(.1)

end

% text

props = {'FontWeight','bold', 'FontAngle','italic', 'FontSize',100};

pause(.2)

text(7,50,70, 'I', props{:})

pause(.5)

text(80,50,43, 'YOU', props{:})

pause(.2)

% equation

props = {'FontSize',10, 'Interpreter','latex'};

text(30,45,30, 'I LOVE YOU', props{:}); drawnow

相关文档
最新文档