步骤:
(1)生成心形曲线数据,根据小红心的大小从曲线数据中提取适当个数的数据点,作为放置小红心位置的定位点(注:测试发现提取数据点过密的情况下,会导致相互重叠的小红心无法显示,哪位懂得解决方法请告知下,谢谢),保存下来;
(2) imread读取小红心图片;
(3)使用mapminmax将提取的小红心定位点的横纵坐标归一化到画布;
(4)设置画布格式;
(5)使用for循环画出小红心,将每个小虹心保存在emo_love.gif里。
代码如下:
load('EMO_LOVE.mat');
img = imread('emo2.jpg');%读取小红心图片
%X和Y为心形曲线的点坐标
%使用mapminmax归一化到画布,画布长度为0~1,高度为0~1;这里稍微缩小了,以防图片溢出画布
[Y_norm,PS_Y] = mapminmax(Y, 0.05,0.9);
[X_norm,PS_X] = mapminmax(X, 0.05,0.9);
%将画布背景设为白色
set(0,'defaultfigurecolor','w')
%设置画布位置,大小
set(gcf,'unit','centimeters','position',[7,1,20,15])
pic_num = 1;
for i=1:21
subplot('position',[X_norm(i),Y_norm(i),0.06,0.06]);