28350 animacao matlab

4
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]r n = 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 x p 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

Upload: genesis-lopes

Post on 06-Apr-2015

343 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 28350 Animacao Matlab

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

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

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

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