28350 animacao matlab
TRANSCRIPT
![Page 1: 28350 Animacao Matlab](https://reader035.vdocuments.net/reader035/viewer/2022081813/5522bf114a7959775e8b4a32/html5/thumbnails/1.jpg)
Animação Matlab
Exemplos de figuras:
(0,0) (1,0)
(1,1)(0,1)
pr = [0 0; 1 0; 1 1; 0 1; 0 0]’
(0,0) (2,0)
(1,2)
pt = [0 0; 2 0; 1 2; 0 0]’
rn = 0:2*pi/50:2*pi
x = r*cos(n)
y = r*sen(n)
pc = [x; y]
Em geometria computacional é utilizado em lugar do sistema de coordenadas
cartesiano as coordenadas homogêneas, devido às vantagens que oferece no
tratamento algébrico de pontos "no infinito".
A figura deve armazenada numa matriz de coordenadas de pontos, onde cada linha
representa o eixo e cada coluna o conjunto de pontos.
1 2
1 2
n
n
x x xp
y y y
Para representar as figuras em coordenada homogêneas:
p(3,:) = 1; % Igual as coordenadas cartesianas
1 2
1 2
1 1 1 1
n
n
x x x
p y y y
![Page 2: 28350 Animacao Matlab](https://reader035.vdocuments.net/reader035/viewer/2022081813/5522bf114a7959775e8b4a32/html5/thumbnails/2.jpg)
Para plotar
plot(p(1,:),p(2,:));
axis equal;
A figura deve armazenada numa matriz de coordenadas de pontos, onde cada linha
representa o eixo e cada coluna o conjunto de pontos.
Translação
Matriz para mudança do ponto
function newp=move2d(p,dx,dy)
trans= [1 0 dx; 0 1 dy; 0 0 1] newp = trans*p;
Teste da função de translação
pn = move2D(p,2,5); plot(pn(1,:),pn(2,:));
Rotação
Matriz de rotação em relação à ORIGEM
function newp=rot2d(p,ang) ang=ang*pi/180 rot=[cos(ang), -sin(ang), 0; sin(ang), cos(ang), 0; 0 0 1] newp = rot*p;
Teste da função da rotação
pn = rot2d(p,30); plot(pn(1,:),pn(2,:));
![Page 3: 28350 Animacao Matlab](https://reader035.vdocuments.net/reader035/viewer/2022081813/5522bf114a7959775e8b4a32/html5/thumbnails/3.jpg)
Mudança de Escala
function newp=esc2d(p,sx,sy) esc= [sx 0 0; 0 sy 0; 0 0 1] newp = esc*p;
Teste da função de mudança de escala
pn = esc2d(p,2,2); plot(pn(1,:),pn(2,:));
Comandos Importantes
figure('color','white'); line('x','y'); line('x','y','color','green','linewidth',3); title('nome','color','red'); h = area(x,y,'facecolor','blue'); set(h,'xdata',x); set(h,'ydata',y); pause(n); hold on
Curiosidades:
1)
for k = 1:16 plot(fft(eye(k+16))) axis equal M(k) = getframe; end movie(M,5)
2)
IFES ...
by
Ferramentas Simulação
Turma EN7
![Page 4: 28350 Animacao Matlab](https://reader035.vdocuments.net/reader035/viewer/2022081813/5522bf114a7959775e8b4a32/html5/thumbnails/4.jpg)
clf line([0 0 1 1 0], [0 1 1 0 0]);
h1 = text(.5, .7, 'IFES ...', ... 'fontangle','italic', ... 'horizontal','center'); set(gca,'visible','off')
h2 = text(.5, .5, 'Ferramentas Simulação', ... 'horizontal', 'center', ... 'fontsize', 30, 'fontname', 'times', ... 'fontweight', 'bold', 'erase', 'xor');
h3 = text(.5, .4, 'by', 'horizontal', 'center');
h4 = text(.5, .3, 'Turma EN7', ... 'fontsize', 16, 'horizontal','center', ... 'erase','xor');
Exemplo de uma animação
corpo=[0 0 1; 1 0 1; 1 2 1; 0 2 1; 0 0 1]'; braco=[1 2 1; 2 2 1; 2 1.5 1; 1 1.5 1; 1 2 1]'; antebraco=[2 2 1; 3 2 1; 3 1.5 1; 2 1.5 1; 2 2 1]';
figure('color','white');
area(corpo(1,:),corpo(2,:),'facecolor','blue'); axis([-0.5 3.5 -1 3]); hold on; des2d(braco); des2d(antebraco); axis off hold off
cotovelo=[2 1.75 1]';
for j = 30:30:360
pause(1) % Move para origem antebraco = move2d(antebraco,-cotovelo(1),-cotovelo(2)); % Rotaciona antebraco = rot2d(antebraco,30); % Move de volta antebraco = move2d(antebraco,cotovelo(1),cotovelo(2)); % Desenha os objetos area(corpo(1,:),corpo(2,:),'facecolor','blue');; hold on; des2d(braco); des2d(antebraco); axis([-0.5 3.5 -1 3]); axis off hold off
end