Contenido principal

Animar un triángulo dentro de un círculo

Este ejemplo muestra cómo animar un triángulo girando en el interior de un círculo actualizando las propiedades de datos del triángulo.

Represente el círculo y establezca los límites de los ejes para que las unidades de datos sean las mismas en ambas direcciones.

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

Figure contains an axes object. The axes object contains an object of type line.

Dibuje un triángulo plano usando la función fill. Luego, cambie el valor de uno de los vértices del triángulo mediante las coordenadas (x, y) del círculo. Cambie el valor en un bucle para crear una animación. Utilice drawnow o el comando drawnow limitrate para mostrar las actualizaciones después de cada iteración. drawnow limitrate es más rápido, pero es posible que no muestre cada fotograma en la pantalla.

xt = [-1 0 1 -1];
yt = [0 0 0 0];
hold on
t = fill(xt,yt,"b"); % 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 % display updates
end

Figure contains an axes object. The axes object contains 2 objects of type line, patch.

La animación muestra el triángulo girando en el interior del círculo.

Animation of a triangle looping around the inside of a circle

Consulte también

Funciones

Temas