Exercicio de animação matlab
Há duas formas básicas de fazer animações em MatLab. O primeiro método é o de construir imagem por imagem com as ferramentas gráficas usuais (plot,patch, etc.), guardar cada imagem (função getframe) e depois reproduzir a sequência com a função movie; este processo é indicado para imagens mais complexas a 3D, ou com muitas regiões preenchidas. O método alternativo, indicado para gráficos baseados em linhas onde a maior parte da cena permanece constante, é o de usar (alterar) as propriedades de um dado objecto gráfico (graphic handle). Objectos diversos (linhas, pontos, polígonos,...) podem ter propriedades diferentes; uma praticamente comum a todos é a de ’erasemode’ que indica o modo como o objecto deve ser desenhado. As propriedades do objecto obtêm-se com a função get, e podem ser alteradas com o função set.
Simular o movimento de um segmento ao longo de um percurso linear
Uso da função line e algumas das suas propriedades (’xdata’, ’ydata’, etc.). Exemplo de código: axis([0 100 0 100]) X = [0 0]; Y = [-5 5]; p = line(X,Y, 'color','r','linewidth',5,'erasemode','xor' ); for t=0:100 set(p,'xData', [t t], 'yData',[t-5 t+5]); pause(0.05) end
Translação e rotação de objectos no plano
• Para implementar translações e rotações de pontos no plano é comum usar-se a matriz de transformação cosθ − sin θ px geométrica dada por T = sin θ cosθ p y se se efectua uma rotação do ângulo θ em torno da origem, 0 0 1 seguida de uma translação px no eixo dos xx e py no eixo dos yy. Assim, um ponto P de coordenadas [x y] é transformado num outro P1=[x1 y1] através da seguinte x1 cosθ − sin θ px x operação: P1 = T ⋅ P = y1 = sin θ cosθ p y y . Note-se que a 3ª coordenada com valor “1” tem 1 0 0 1 1 para já um valor meramente auxiliar. Tem de ser usado para a operação matricial mas, de resto, pode ser perfeitamente ignorado. • Com base na matriz de rotação como indicado,