clc;clear all; close all;const=0;
p1 = [0, -1.2, -0.3];
p2 = [0, 0.7, 1.0];
vec = 2*(p2 - p1);
pos=[zeros(1,3);vec/4];
for step = 1 : 2
hold on
x = -5 : 0.05 : 5;
y = -5 : 0.05 : 5;
z = -5 : 0.05 : 5;
[x, y, z] = meshgrid(x, y, z);
f=((x-pos(step,1)).^2 + (9/4)*(y-pos(step,2)).^2 + (z-pos(step,3)).^2 - 1).^3 - (x-pos(step,1)).^2.*(z-pos(step,2)).^3 - (9/80)*(y-pos(step,2)).^2.*(z-pos(step,3)).^3 - const;
p(step)=patch(isosurface(x,y,z,f,0));
set(p(step), 'FaceColor', 'red', 'EdgeColor', 'none');
daspect([1 1 1])
view(3)
camlight;
lighting phong
axis equal;box on;
xlabel('x'); ylabel('y'); zlabel('z');hold on;
axis off;
set(gcf, 'color','b', 'units', 'normalized', 'position', [0.1 0.1 0.35 0.3])
end
h = quiver3(p1(1), p1(2), p1(3), vec(1), vec(2), vec(3), 0.6, 'r-', 'filled');
set(h, 'LineWidth', 3);
xd = get(h, 'XData');
yd = get(h, 'YData');
zd = get(h, 'ZData');
vec = vec/norm(vec);
set(h, 'XData', xd-vec(1)*3, 'YData', yd-vec(2)*3, 'ZData', zd-vec(3)*3);
ve{1} = get(p(1), 'vertices');
ve{2} = get(p(2), 'vertices');
text(p1(1), p1(2), p1(3)-1, 'My heart for you', 'FontSize', 20, 'Color', 'r');
for i = 1 : 122
set(h, 'XData', xd+vec(1)*(i-300)*0.01, 'YData', yd+vec(2)*(i-300)*0.01, 'ZData', zd+vec(3)*(i-300)*0.01);
if rem(i, 3) == 1
set(p(1), 'vertices', ve{1}*1.1);
set(p(2), 'vertices', ve{2}*1.1);
title('Love To You!', 'FontSize', 15, 'Color', 'm')
else
set(p(1), 'vertices', ve{1});
set(p(2), 'vertices', ve{2});
title(' Love To You!', 'FontSize', 15, 'Color', 'b')
end
pause(0.01);
end
for i = 240 : 300
set(h, 'XData', xd+vec(1)*(i-300)*0.01, 'YData', yd+vec(2)*(i-300)*0.01, 'ZData', zd+vec(3)*(i-300)*0.01);
if rem(i, 3) == 1
set(p(1), 'vertices', ve{1}*1.1);
set(p(2), 'vertices', ve{2}*1.1);
title('Love To You!', 'FontSize', 15, 'Color', 'm')
else
set(p(1), 'vertices', ve{1});
set(p(2), 'vertices', ve{2});
title('Love To You!', 'FontSize', 15, 'Color', 'b')
end
pause(0.01);
end
title('Love To You!', 'FontSize', 15, 'Color', 'm')
箭的效果可以自己调整下,这个创意送给女朋友不错,大赞!!
学什么不好非学电脑,这么麻烦。