Main Content

Animate Triangle Within Circle

This example shows how to animate a triangle looping around the inside of a circle by updating the data properties of the triangle.

Plot the circle and set the axis limits so that the data units are the same in both directions. Use the drawnow command to update the figure before starting the animation.

theta = linspace(-pi,pi);
xc = cos(theta);
yc = -sin(theta);
plot(xc,yc);
axis equal
drawnow

Use the area function to draw a flat triangle. Then, change the value of one of the triangle vertices using the (x,y) coordinates of the circle. Change the value in a loop to create an animation. Use a drawnow or drawnow limitrate command to display the updates after each iteration. drawnow limitrate is fastest, but it might not draw every frame on the screen.

xt = [-1 0 1 -1];
yt = [0 0 0 0];
hold on
t = area(xt,yt); % initial flat triangle
hold off
for j = 1:length(theta)-10
    xt(2) = xc(j); % determine new vertex value
    yt(2) = yc(j);
    t.XData = xt; % update data properties
    t.YData = yt;
    drawnow limitrate % display updates
end

The animation shows the triangle looping around the inside of the circle.

See Also

| | | |

Topics