Happy Birthday Animation with changing colors

5 次查看(过去 30 天)
I have found great animation example
But I want similar animation with changing colors of text and flower, with happy birthday message.
It will be great if script is changed to function for text and flower options

采纳的回答

Khalid Mahmood
Khalid Mahmood 2021-4-30
I hope this will be great example for you
function f=Animate(str,chr) %string that rotates along central character
if nargin<2
chr='🌺';%🕐🕑🕒🕓🕔🕕🕖🕗🕘 %char(9752)%flower=9752
if nargin<1
str='Happy Birthday!';
end
end
fig = figure('MenuBar','none','Color', [0 .4 .3],'Units','Normalized','Position',[.1 .1 .8 .8]); % Shamrock green
ax = axes(fig,'Units','Normalized','Position',[0 0 1 1]);
axis(ax,'off')
axis(ax,'equal')
hold(ax,'on')
xlim(ax,[-1,1]); ylim(ax,[-1,1])
text(ax, 0, 0, chr, 'VerticalAlignment','middle','HorizontalAlignment','center','FontSize', 400)
str = num2cell(str);
th = linspace(-pi/2,pi/2,numel(str));
txtHandle = text(ax,sin(th)*.8, cos(th)*.8, str, 'VerticalAlignment','middle','HorizontalAlignment','center','FontSize', 45);
set(txtHandle,{'rotation'}, num2cell(rad2deg(-th')))
thr = 0.017;
rotateCCW = @(xyz)([cos(thr) -sin(thr) 0; sin(thr), cos(thr), 0; 0 0 1]*xyz.').';
clr=[1 0 .1]; clrf=1-[clr];
t1=double(tic);fs=450;
while all(isvalid(txtHandle))
text(ax, 0, 0, chr, 'VerticalAlignment','middle','HorizontalAlignment','center','FontSize', fs,'Color',clrf)
newposition = rotateCCW(vertcat(txtHandle.Position));
set(txtHandle,'Color',clr,{'position'}, mat2cell(newposition,ones(numel(txtHandle),1),3), ...
{'rotation'}, num2cell([txtHandle.Rotation].'+thr*180/pi))
drawnow()
t2=double(tic);
if (t2-t1)/1e7>.25
clr=rand(1,3)/2;t1=t2;
if fs<350, fs=fs*1.2; else, fs=50;end
else
if all(clr)<.9,clr-clr*1.2;end
end
clrf=1-clr;
end

更多回答(1 个)

Khalid Mahmood
Khalid Mahmood 2021-4-30
Like Following?
function f=Animate(str,chr) %string that rotates along central character
if nargin<2
chr='🌺';%🕐🕑🕒🕓🕔🕕🕖🕗🕘 %char(9752)%flower=9752
if nargin<1
str='Happy Birthday!';
end
end
fig = figure('MenuBar','none','Color', [0 .4 .3],'Units','Normalized','Position',[.1 .1 .8 .8]); % Shamrock green
ax = axes(fig,'Units','Normalized','Position',[0 0 1 1]);
axis(ax,'off')....

类别

Help CenterFile Exchange 中查找有关 Animation 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by