make a birthday cake animation in matlab

To create a birthday cake animation in MATLAB, you can use the built-in animation and graphics functions. Here's an example code to get you started:

main.m
% Set up the animation parameters
numFrames = 50;
frameRate = 10;

% Create a figure window
fig = figure;

% Create axes for cake and candles
axes('Position', [0.2 0.2 0.6 0.6]);

% Loop through each frame
for i = 1:numFrames
    % Clear the axes
    cla;
    
    % Draw the cake
    rectangle('Position', [0.2 0.2 0.6 0.4], 'FaceColor', [0.85 0.65 0.4],'Curvature',[0.1 0.1]);
    hold on;
    
    % Draw the candles
    x = linspace(0.35, 0.85, 5); % x-coordinates of candles
    y = ones(1, 5) * 0.6;       % y-coordinate of candles
    h = 0.15;                   % height of candles
    
    for j = 1:numel(x)
        rectangle('Position', [x(j)-(h/2), y(j), h, h], 'FaceColor', 'r', 'Curvature', [1 1]);
    end
    
    % Add decoration on the cake
    scatter(0.5, 0.4, 'filled', 'r');
    
    % Optional: Add a message
    text(0.5, 0.8, 'Happy Birthday!', 'HorizontalAlignment', 'center', 'FontWeight', 'bold', 'FontSize', 14);
    
    % Set axis limits
    xlim([0 1]);
    ylim([0 1]);
    
    % Remove axis labels and ticks
    set(gca, 'Visible', 'off');
    
    % Pause to control the frame rate
    pause(1/frameRate);
    
    % Update the figure window
    drawnow;
end

% Optional: Save the animation as a GIF
filename = 'birthday_cake_animation.gif';
frame = getframe(fig);
im = frame2im(frame);
[imind, cm] = rgb2ind(im, 256);
if i == 1
    imwrite(imind, cm, filename, 'gif', 'Loopcount', inf);
else
    imwrite(imind, cm, filename, 'gif', 'WriteMode', 'append');
end
1497 chars
59 lines

This code creates a simple animation of a birthday cake with candles. It uses the rectangle function to draw the cake and candles, scatter function to add a decoration on the cake, and text function to add a birthday message. The animation is achieved by clearing the axes, redrawing the cake, candles, and decorations for each frame, and updating the figure window using drawnow function. The pause function is used to control the frame rate of the animation.

You can adjust the parameters numFrames and frameRate to control the duration and speed of the animation. You can also modify the code to add more elements or customize the appearance of the cake and candles.

Note: The optional code at the end saves the animation as a GIF file named "birthday_cake_animation.gif". If you want to save the animation, make sure to have the imwrite function inside the loop to capture each frame.

Happy coding and have a great birthday celebration!

related categories

gistlibby LogSnag