Escolar Documentos
Profissional Documentos
Cultura Documentos
Figuras
Introdução
Plotagem - plot
Customização
Customizações Avançadas
Customizações Avançadas - Anotações
Múltiplos gráficos - subplot
Salvando figuras
Salvando figuras
Animações
Figuras 3D
2/98
Section 1
Introdução
3/98
Introdução - Variáveis
I Variáveis no Matlab não possuem tipo explicito, elas podem
assumir qualquer “tipo"existente no Matlab, por exemplo,
numérico, string, array, célula, função de transferência, símbolos,
etc.
Exemplo:
I x = 6;
I x = ’teste’;
I x = tf(1,[1 1]);
5/98
Introdução - Array/Vetor
I Para acessar os elementos individuais, usa-se o nome da variável
seguida de (i) onde i é o índice do elemento.
I No Matlab, o primeiro índice é 1, ao contrário de outras linguagens.
I O índice deve ser exclusivamente um número inteiro positivo.
Exemplo:
I x = [1 -2 3 8]
I x(1) → retorna 1
I x(4) → retorna 8
I x = [1 ;-2; 3 ;8];
I x(2) → retorna -2
I x(3) → retorna 3
6/98
Introdução - Array/Vetor
Exemplo:
I x = [2 -20 4 8 10 9 8];
I x([1 2 3]) → retorna [1 -20 4]
I x([1 1 1]) → retorna [2 2 2]
I x([4 3 2 1]) → retorna [8 4 -20 2]
7/98
Introdução - Array/Vetor
I Um operador interessante para conhecer é o ’:’, que cria uma
sequência de valores → x = -2:2; retorna x = [-2 -1 0 1 2]
Sintaxe:
I v1 :v2 → gera valores começando em v1 e incrementando de 1 em 1
unidade até v2
I v1 :inc:v2 → gera valores começando em v1 e incrementando de inc
em inc unidades até v2 . inc pode ser negativo se desejar criar uma
sequência decrescente.
Exemplo:
I x = -1:1 → retorna [-1 0 1]
I x = -2.1:2 → retorna [-2.1 -1.1 -0.1 0.9 1.9]
I x = -1:0.5:1 → retorna [-1 -0.5 0 0.5 1]
8/98
Introdução - Array/Vetor
Exemplo:
I x = [-1 0 1 2 3 4];
I x(1:2) → retorna [-1 0]
I x(1:2:5) → retorna [-1 1 3]
I x(6:-1:3) → retorna [4 3 2 1]
I x(end:-1:5) → retorna [4 3]
I x(4:end) → retorna [2 3 4]
9/98
Introdução - Matrizes
I Matrizes nada mais são que arrays bidimensionais. A declaração é
feita da seguinte maneira → M = [1,2;3,4]
I O ’;’ quebra as linhas e ’,’ separa os elementos de uma mesma
linha. A ’,’ não é estritamente necessária.Tem-se que tomar
cuidado para que o número de elementos de cada linha sejam
iguais.
I O acesso aos elementos da matriz é feita de forma similar ao array
→ M(i,j), onde i e j se referem ao elemento da i-ésima linha e da
j-ésima coluna.
Exemplo:
I M = [1,2;3,4];
I M(1,1) → retorna 1
I M(1,2) → retorna 2
10/98
Introdução - Matrizes
Exemplo:
I M(1:end,1) → retorna [1;3]
I M(1,1:2) → retorna [1,2]
11/98
Introdução - Matrizes
Exercício:
I Construir uma matriz 4 × 4 com elementos crescentes de 1 a 16.
1. M = 1:16;
2. M = reshape(M,4,4);
3. M = M’;
Sintaxe:
I M = reshape(x,m,n)
I Reformata a os elementos de x em uma nova matriz M de tamanho
m × n pegando construindo coluna por coluna.
I OBS: x deve possuir m*n elementos
12/98
Introdução - Matrizes
Exemplo:
I x = [] → cria um array vazio
I x(1:4) = 5 → retorna x = [5 5 5 5]
I x(5:7) = [8 6 8] → retorna x = [5 5 5 5 8 6 8]
I x(end+1) = 7 → retorna x = [5 5 5 5 8 6 8 7]
13/98
Introdução - Function Handles
I O Matlab permite a definição de funções de forma simplificada,
equivalente às funções inline em C. Essas funções são chamadas de
anônimas.
Sintaxe:
I h = @(arglist)anonymous_function
I arglist → lista de parâmetros que devem ser passados para a função
I anonymous_function → aqui deve-se definir a função a ser
realizada.
I h passa a ser o ponteiro para a função, o function handle.
Exemplo:
I f = @(x) 5.*sin(x)[] → cria f(x) = 5sin(x)
I y = f(5) → retorna y = -4.7946
I y = f(pi) → retorna y = 0
14/98
Introdução - Function Handles
Exemplo:
I f = @(x) 5.*sin(x)[] → cria f(x) = 5sin(x)
I y = f([5,pi,pi/2]) → retorna y = [-4.7946,0,5]
15/98
Introdução - Function Handles
Exercício:
I Defina function handles para as funções abaixo e teste as funções
para valores quaisquer e vetores/matrizes.
1. f (x ) = 5√sin(x ) − x 2 + 3
2. g(x ) = x 3 + e −2x − 5
3. h(w , t) = 25 − w 2 − t 2
16/98
Introdução - Function Handles
Exercício:
I Defina function handles para as funções abaixo e teste as funções
para valores quaisquer e vetores/matrizes.
1. f (x ) = 5√sin(x ) − x 2 + 3 → f = @(x) 5*sin(x)-x.^+3
2. g(x ) = x 3 + e −2x − 5
3. h(w , t) = 25 − w 2 − t 2
16/98
Introdução - Function Handles
Exercício:
I Defina function handles para as funções abaixo e teste as funções
para valores quaisquer e vetores/matrizes.
1. f (x ) = 5√sin(x ) − x 2 + 3 → f = @(x) 5*sin(x)-x.^+3
2. g(x ) = x 3 + e −2x − 5 → g = @(x) sqrt(x.^+exp(-2*x)-5)
3. h(w , t) = 25 − w 2 − t 2
16/98
Introdução - Function Handles
Exercício:
I Defina function handles para as funções abaixo e teste as funções
para valores quaisquer e vetores/matrizes.
1. f (x ) = 5√sin(x ) − x 2 + 3 → f = @(x) 5*sin(x)-x.^+3
2. g(x ) = x 3 + e −2x − 5 → g = @(x) sqrt(x.^+exp(-2*x)-5)
3. h(w , t) = 25 − w 2 − t 2 → h = @(w,t) 25-w.^2-t.^2
16/98
Introdução - Gerando dados
Exercício:
I Utilize uma das funções anteriores para gerar um vetor de dados e
aplique-os em uma das funções definidas anteriormente.
17/98
Introdução - Últimas dicas
18/98
Introdução - Últimas dicas
19/98
Section 2
Figuras
20/98
Figuras - Introdução
21/98
Figuras - Introdução
22/98
Figuras - Introdução
23/98
Figuras - Introdução
24/98
Figuras - plot
Sintaxe:
I plot(x,y)
I x → vetor de dados do eixo x
I y → vetor de dados do eixo y
I Os vetores x e y precisam ter mesma dimensão!
Exemplo:
I x = [1 2 3 4 5]
I x=y
I plot(x,y)
25/98
Figuras - plot
I Para se trabalhar com um conjunto maior de dados, utiliza-se dados
“prontos"provenientes de algum outro lugar, ou gera-se dados
novos utilizando, por exemplo, os comandos linspace e logspace
Exercício:
I Implemente a função f (x ) = 5 sin(x ) − x 2 + 3
I Crie um vetor x com valores entre -5 e 5 com incrementos de 1
unidade.
I Plote o resultado
26/98
Figuras - plot
I Para se trabalhar com um conjunto maior de dados, utiliza-se dados
“prontos"provenientes de algum outro lugar, ou gera-se dados
novos utilizando, por exemplo, os comandos linspace e logspace
Exercício:
I Implemente a função f (x ) = 5 sin(x ) − x 2 + 3
I Crie um vetor x com valores entre -5 e 5 com incrementos de 1
unidade.
I Plote o resultado
26/98
Figuras - plot
Sintaxe:
I plot(x1,y1,x2,y2,...,xn,yn) → cada par xi/yi é um conjunto
diferente de dados
I plot(x,[y1 y2 y3 ... yn]) → os dados de x é comum a todos os
dados e yi é um vetor coluna com o mesmo número de elementos
de x.
I plot(x1,y1); hold on ; plot(x2,y2); plot(x3,y3) ... → o comando
hold on obriga o Matlab a manter as curvas já plotadas.
I Em todos os casos é possível repetir a sequência quantas vezes for
necessário.
27/98
Figuras - plot
Exercício:
I Crie dois novos conjuntos de dados → y2 = 1+f(x); y2 = 2+f(x);
I Crie três figuras distintas e em cada uma delas plote as três curvas
utilizando os diferentes métodos.
I Utilize o comando figure para gerar uma nova figura.
28/98
Figuras - plot
29/98
Figuras - Customização
30/98
Figuras - Customização
31/98
Figuras - Customização
32/98
Figuras - Customização
I Apesar das customizações poderem serem feitas de maneira
manual, é interessante aprender como utilizar as funções do matlab
para realizar isso. Dessa maneira, é possível utilizar scripts
automatizados para geração de figuras. Algumas funções básicas
para customização de figuras:
Sintaxe:
I title(’texto’) → Insere um título na figura
I ylabel(’texto’) → Insere um texto no eixo y.
I xlabel(’texto’) → Insere um texto no eixo x.
I grid on → Insere as linhas de espaçamento
I xlim([min max]), ylim([min max]) → limita os eixos x ou y ao
intervalor compreendido entre min e max.
I legend(’str1’,’str2’,...,’strn’) → Insere legenda e nomeia cada curva.
33/98
Figuras - Customização
Exercício:
I Utilize os cada um dos comandos anteriores para customizar a
última figura gerada.
34/98
Figuras - Customização
I Note que ao plotar as curvas, o Matlab define automaticamente as
cores e o tipo do traçado. É possível alterar isso:
Sintaxe:
I plot(x,y,’cst’ → plota uma curva com os dados x/y e customiza a
curva gerada. Cada letra do terceiro parâmetro tem uma função. A
primeira diz respeito à cor, e as duas últimas ao tipo de traçado. É
possível omitir o primeiro caractere para não especificar cor.
35/98
Figuras - Customização
Exercício:
I Teste alguns dessas opções e veja como a plotagem da curva muda.
36/98
Figuras - Customização
Sintaxe:
I plot(x,y,’Color’,[r g b]) → plota uma curva com os dados x/y e
customiza a cor da curva gerada. r , g, b ∈ [0, 1] e fazem referência
às cores vermelha, verde e azul, respectivamente.
1. [1, 0, 0] → vermelho puro
2. [0, 1, 0] → verde puro
3. [0, 0, 1] → azul puro
4. [0, 0, 0] → preto
5. [1, 1, 1] → verde puro
6. [0.5, 0.5, 0.5] → cor intermediária
37/98
Figuras - Customização
Exercício:
I Faça novos plotagens com novas combinações de cores e traçados..
38/98
Figuras - Customizações Avançadas
39/98
Figuras - Customizações Avançadas
Exemplo:
I plot([0 1],[0 1],’LineStyle’,’–’,
’LineWidth’,2,’Marker’,’o’,’MarkerFaceColor’,’red’,’MarkerSize’,10)
40/98
Figuras - Customizações Avançadas
I Como descobrir as propriedades disponíveis? Utilizando o ponteiro
do objeto criado.
I Objetos são variáveis especiais que são compostas de outras
variáveis. Objetos são como conjuntos de variáveis. As variáveis de
um objeto são chamadas de propriedades.
I Para obter o ponteiro do objeto, ao utilizar funções como plot,
faça: pObj = plot(x,y). pObj é o ponteiro.
Exemplo:
I p = plot(x,y);
I p → em versões mais novas do Matlab basta utilizar o nome do
objeto para imprimir as suas propriedades.
I get(p) → em versões mais antigas, é necessário utilizar o comando
get(.) para obter o mesmo resultado.
41/98
Figuras - Customizações Avançadas
42/98
Figuras - Customizações Avançadas
Exercício:
I Faça um código que execute o comando abaixo só que agora
utilizando o ponteiro do objeto para definir as propriedades.
I plot(x,y,’LineStyle’,’–’,
’LineWidth’,2,’Marker’,’o’,’MarkerFaceColor’,’red’,’MarkerSize’,10)
Solução
I p = plot(x,y)
43/98
Figuras - Customizações Avançadas
Exercício:
I Faça um código que execute o comando abaixo só que agora
utilizando o ponteiro do objeto para definir as propriedades.
I plot(x,y,’LineStyle’,’–’,
’LineWidth’,2,’Marker’,’o’,’MarkerFaceColor’,’red’,’MarkerSize’,10)
Solução
I p.Marker = ’o’ ou
I p = plot(x,y)
set(p,’Marker’,’o’)
I p.LineStyle = ’–’ ou
I p.MarkerSize = 10 ou
set(p,’LineStyle’,’–’)
set(p,’MarkerSize’,10)
I p.LineWidth = 2 ou
I p.MarkerFaceColor = ’red’ ou
set(p,’LineWidth’,2)
set(p,’MarkerFaceColor’,’red’)
43/98
Figuras - Customizações Avançadas
44/98
Figuras - Customizações Avançadas
I Algumas customizações do eixo do gráfico são bem interessante. Já
aprendemos algumas, tais como xlabel(.), ylabel(.), xlim(.), ylim(.).
I Algumas propriedades dos eixos que são interessantes:
I Color → cor dos eixos.
I FontSize → tamanho da fonte.
I FontName → nome da fonte.
I FontWeight → ’normal’ ou ’bold’ (negrito)
I FontAngle → ’normal’ ou ’italic’ (itálico)
I GridColor → cor dos espaçamentos.
I GridLineStyle → tipo do traçado dos espaçamentos.
I LineWidth → tamanho das bordas do gráfico.
I Title → objeto associado ao título.
I XLabel, YLabel → objeto associado aos rótulos dos eixos.
I Xlim, YLim → limites dos eixos.
I XTick, YTick → marca os pontos onde deve existir espaçamentos.
I XTickLabel, YTickLabel → texto associado aos espaçamentos (deve
ser uma célula).
45/98
Figuras - Customizações Avançadas
Exercício:
I Faça alguns testes utilizando as propriedades listadas. Veja quais
são os valores atuais das propriedades e depois tente fazer
alterações.
46/98
Figuras - Customizações Avançadas
I No caso específico de legendas, uma propriedade interessante é a
Location (localização), que determina a posição da legenda no
gráfico.
Sintaxe:
I legend(’x1’,’x2’,’Location’,local)
→ local define a posição da
legenda
I é possível definir a posição da
legenda de forma numérica
através da propriedade Position
47/98
Figuras - Customizações Avançadas
I Como visto, cada objeto de uma figura do Matlab possui diversas
propriedades que podem ser alteradas da maneira que desejar.
I Nesse curso, veremos apenas as principais, pois tratar de todas de
forma exaustiva levaria muito tempo.
I Porém, lembre-se, o Matlab possui uma documentação extensa que
esclarece muitas dúvidas!
48/98
Figuras - Customizações Avançadas - Anotações
49/98
Figuras - Customizações Avançadas - Anotações
Sintaxe:
I annotation(’line’,[xini xfim],[yini yfim]) → xini/yini e xfim/yfim
indicam as posições x/y iniciais e finais da linha. A unidade de
distância padrão é normalizada, assim, os valores devem estar
compreendidos entre 0 e 1, a não ser que o tipo de unidade seja
modificada.
I annotation(’line’,[xini yini dx dy]) → dx e dy estabelecem a
variação em x e y em relação a xini e yini.
Exemplo:
I plot(x,y)
I x = annotation(’line’,[0.5 1],[0.5 0.5])
50/98
Figuras - Customizações Avançadas - Anotações
Sintaxe:
I annotation(’line’,[xini xfim],[yini yfim]) → xini/yini e xfim/yfim
indicam as posições x/y iniciais e finais da linha. A unidade de
distância padrão é normalizada, assim, os valores devem estar
compreendidos entre 0 e 1, a não ser que o tipo de unidade seja
modificada.
I annotation(’line’,’Position’,[xini yini dx dy]) → dx e dy estabelecem
a variação em x e y em relação a xini e yini.
Exemplo:
I plot(x,y)
I x = annotation(’line’,[0.5 0.5 0.5 0])
51/98
Figuras - Customizações Avançadas - Anotações
I arrow, doublearrow possuem sintaxe e propriedades similares à
anotação line.
I Para textarrow:
Sintaxe:
I annotation(’textarrow’,[xini xfim],[yini yfim],’String’,texto) → texto
define o texto no lado sem a flecha da seta.
I annotation(’line’,’Position’,[xini yini dx dy],’String’,texto) →
sintaxe similar ao caso da anotação line.
Exemplo:
I plot(x,y)
I x = annotation(’textarrow’,[0.5 0.5 0.5 0],’String’,’y = f(x)’)
52/98
Figuras - Customizações Avançadas - Anotações
Sintaxe:
I annotation(’rectangle’,[xini yini dx dy]) → xini/yini define a posição
do canto inferior esquerdo e dx/dy define o tamanho dos lados.
I annotation(’ellipse’,’Position’,[xini yini dx dy],’String’,texto) →
xini/yini e dx/dy definem o retângulo “invisível"no qual a elipse se
encaixa.
I Algumas propriedades interessantes:
I Color → cor das bordas.
I FaceColor → cor de preenchimento.
I FaceAlpha → somente para retângulo, transparência do
preenchimento [0,1], sendo 0 totalmente transparente.
53/98
Figuras - Customizações Avançadas - Anotações
Sintaxe:
I plot(x,y)
I x1 = annotation(’rectangle’,[0.5 0.5 0.3 0.2],’Color’,’blue’)
I x2 = annotation(’ellipse’,[0.5 0.5 0.3 0.2],’Color’,’red’)
I x3 = annotation(’rectangle’,[0.2 0.5 0.2
0.2],’Color’,’blue’,’FaceColor’,’red’,’FaceAlpha’,0.5)
54/98
Figuras - Customizações Avançadas - Anotações
Sintaxe:
I annotation(’textbox’,[xini yini dx dy],’String’,str) → str define o
texto a ser colocado.
I annotation(’textbox’,[xini yini dx
dy],’String’,str,’FitBoxToText’,’on’); → FitBoxToText on força a
caixa de texto a ter tamanho suficiente para englobar o texto.
I Algumas propriedades interessantes:
I FontName, FontSize, FontWeight, FontAngle
I Color
55/98
Figuras - Customizações Avançadas - Anotações
Exemplo:
I plot(x,y)
I x1 = annotation(’textbox’,[.2 .5 .3 .3],’String’,’Testo de teste blah
blah blah’)
I x2 = annotation(’textbox’,[.7 .2 .2 .2],’String’,’Testo de teste blah
blah blah’,’FitBoxToText’,’on’)
56/98
Figuras - Customizações Avançadas - Anotações
I Existem algumas funções alternativas para algumas dessas
anotações com interface mais simples:
Sintaxe:
I line([xini xfim],[yini yfim]) → cria uma linha que inicia na
coordenada [xini,yini] e termina em [yini yfim]. A diferença para o
annotation é que a posição utiliza as unidades do gráfico.
I text(x,y,str) → cria um texto na posição x,y e com o texto str.
I rectangle(’Position’, [x y w h]) → cria um retângulo na posição x y
com largura w e altura h.
I rectangle(’Position’, [x y w h],’Curvature’,[a b]) → cria um
retângulo na posição x y com largura w e altura h e com curvatura
em x de a e em y de b. Curvatura 1 em a e b define uma elipse.
57/98
Figuras - Múltiplos gráficos
I E se quiséssemos plotar vários gráficos numa mesma figura?
Também é possível!
Sintaxe:
I subplot(m,n,p) → cria um grid na figura atual de m × n posições.
Em cada posição dessa pode ser plotada um gráfico diferente. O
parâmetro p indica a posição atual selecionada, contando da
esquerda para a direita e de cima para baixo.
Exemplo:
I figure
I subplot(2,1,1)
I plot(x,y)
I subplot(2,1,2)
I plot(x,y2)
58/98
Figuras - Múltiplos gráficos
Exercício
I Plote as três curvas dos exercícios anteriores numa mesma figura
mas em gráficos dispostos em uma linha.
I Plote as três curvas dos exercícios anteriores numa mesma figura
mas em gráficos dispostos em uma coluna. Se quiser, tente fazer
customizações em cada um das plotagens.
59/98
Figuras - Múltiplos gráficos
I É possível utilizar o subplot de maneira mais complexa. Por
exemplo:
60/98
Figuras - Múltiplos gráficos
61/98
Figuras - Múltiplos gráficos
Exemplo: Exemplo:
I subplot(2,2,[1 3]) I subplot(2,2,[1 2])
I plot(x,y) I plot(x,y)
I subplot(2,2,2) I subplot(2,2,3)
I plot(x,y2) I plot(x,y2)
I subplot(2,2,4) I subplot(2,2,4)
I plot(x,y3) I plot(x,y3)
62/98
Figuras - Múltiplos gráficos
63/98
Figuras -Salvando
I Depois de fazer a figura na forma desejada, chegou a hora de
salvar em um arquivo!
I Para isso, usa-se o comando print.
Sintaxe:
I print(nomeArquivo,form,opcoes) → salva a figura atual no arquivo
nomeArquivo considerando o formato form e as opções dadas.
I tipos de formato:
1. ’-djpeg’ → formato JPEG.
2. ’-dpng’ → formato PNG (melhor que JPEG).
3. ’-dpf’ → salva em pdf (vetorizado).
4. ’-depsc’ → formato EPS colorido (vetorizado).
I Há muitas opções de formato, vale a pena ler o HELP da função
para customizar melhor a figura gerada.
64/98
Figuras -Salvando
Exemplo:
I plot(x,y)
I customizar gráfico.
I print(’teste’,’-dpng’)
65/98
Section 3
Animações
66/98
Animações
67/98
Animações
Exemplo:
I Movendo um ponto no gráfico:
68/98
Animações
Exercício
I Refaça o exercício anterior mas agora utilize uma trajetória para a
bolinha de tal forma que os valores de posição y também sejam
modificados. Por exemplo: y = sin(x).
69/98
Animações
Exercício
I Resolução: percorrendo uma circunferência.
70/98
Animações
Exercício
I Agora, ao mesmo tempo em que a bolinha anda, trace uma curva
de sua trajetória.
71/98
Animações
Exercício:
I Resolução:
72/98
Animações
Exercício:
I E se agora quiséssemos colocar uma caixa de texto mostrando a
posição x da bolinha? Tente!
I Dicas:
I num2str(n) → converte o número n para uma string.
73/98
Animações
Exercício:
I Resolução:
74/98
Animações
Exercício:
I E se, além disse, quiséssemos que o texto acompanha-se a bolinha?
Tente!
75/98
Animações
Exercício:
I Resolução:
76/98
Animações - Agrupamentos
77/98
Animações - Agrupamentos
Exemplo:
I Vejamos o exemplo abaixo:
78/98
Animações - Agrupamentos
79/98
Animações - Agrupamentos
Sintaxe:
I M = makehgtform(’translate’,[tx ty tz]) → translada o bloco por
tx,ty e tz unidade em relação à posição inicial em cada um dos
eixos.
I M = makehgtform(’scale’,s) → aumenta/diminui as dimensões do
bloco por um fator s
I M = makehgtform(’scale’,[sx,sy,sz]) → aumenta/diminui as
dimensões do bloco nas dimensões x,y e z por um fator de sx,sy e
sz, respectivamente.
80/98
Animações - Agrupamentos
Sintaxe:
I M = makehgtform(’xrotate’,t) → rotaciona em relação ao eixo x
por t radianos.
I M = makehgtform(’yrotate’,t) → rotaciona em relação ao eixo y
por t radianos.
I M = makehgtform(’zrotate’,t) → rotaciona em relação ao eixo z
por t radianos.
I M = makehgtform(’axisrotate’,[ax,ay,az],t) → rotaciona em
relação aos três eixos por t radianos.
81/98
Animações - Agrupamentos
Sintaxe:
I bloco.Matrix = M, em versões novas do Matlab
I set(bloco,’Matrix’,M), em versões antigas do Matlab.
82/98
Animações - Agrupamentos
Exemplo:
83/98
Animações - Agrupamentos
Exercício:
I Agora é sua vez! Invente uma forma complexa com pelo menos
três elementos e tente fazer uma animação!
84/98
Animações - Salvando
I Imagine... Você acabou de criar uma obra prima das animações e
agora quer compartilhar no Face! Tem jeito? Sim!
I Como comentado anteriormente, uma animação nada mais é do
que uma sequência de quadros. Precisamos então salvar esses
quadros!
Sintaxe:
I v = VideoWriter(nomeAquivo,tipo) → cria um ponteiro para o
arquivo nomeArquivo de formato tipo, que pode ser: ’MPEG-4’,
’Motion JPEG AVI’, entre outros.
I open(v) → abre o arquivo apontado por v.
I frame = getframe(gcf) → obtém o quadro atual da figura principal
(gcf).
I writeVideo(v,frame) → salva o quadro frame em v.
I close(v) → fecha o arquivo.
85/98
Animações - Salvando
Exemplo:
I Uma propriedade importante é o FrameRate, cuja padrão é 30
quadros por segundo. A quantidade de quadros e o frame rate
definirá o tempo do vídeo.
86/98
Section 4
Figuras 3D
87/98
Figuras 3D - Introdução
88/98
Figuras 3D - Introdução
I plot3
89/98
Figuras 3D - Introdução
I mesh
90/98
Figuras 3D - Introdução
I surf
91/98
Figuras 3D - Introdução
I Para trabalhar com mesh e surf, lembre-se de gerar matrizes!
I Essa tarefa pode ser facilitada com a função meshgrid.
Sintaxe:
I [X,Y] = meshgrid(xgv,ygv) → X e Y são as matrizes de saída e
xgv e ygx são os valores que x e y vão assumir.
Exemplo
I [x1,y1] = meshgrid(-2:.2:2,-4:.4:4); → observe a saída das
matrizes x1 e x2 em relação aos parâmetros de entrada da função
meshgrid.
I z1 = x1.*exp(-x1.^2-y1.^2);
I figure, mesh(x1,y1,z1);
I figure, surf(x1,y1,z1);
92/98
Figuras 3D - Introdução
Sintaxe:
I view(az,el) → onde az é o
ângulo azimute e el é a
elevação (veja figura).
I view(2) → seta o ângulo no
plano XY, ou seja
perpendicular ao eixo Z: az =
0, el = 90.
I view(3) → ângulo de visão
padrão: az = –37.5, el = 30.
93/98
Figuras 3D - Formas
Sintaxe:
I [x,y,z] = sphere(n) → gera as matrizes para obter uma
aproximação de uma esfera por um poliedro de n.
I [x,y,z] = cylinder(r,n) → gera as matrizes para obter uma
aproximação de um cilindro de raio r por um poliedro de n faces.
94/98
Figuras 3D - Formas
Exemplo:
I [x,y,z] = sphere(10);
I surf(x,y,z);
I figure
I [x,y,z] = cylinder(5,20)
I mesh(x,y,z)
95/98
Figuras 3D - Formas
I Por último, temos a função patch, que gera um poliedros
especificando os vértices e as faces do mesmo.
Sintaxe:
I p = patch(x,y,z,c) → retorna um ponteiro para objeto p e plota
um polígono de acordo as coordenadas dos vértices x,y,z (onde
cada coluna define um poliedro diferente). z pode ser omitido, mas
não a cor c.
Exemplo:
I x1 = [-1 0 1]’;y1 = [1 2 1]’;
I x2 = [1 2 3]’,y2 = [1 2 1]’;
I patch([x1 x2],[y1 y2],’green’)
96/98
Figuras 3D - Formas
I Uma segunda forma de utilizar o patch.
Sintaxe:
I p = patch(’Faces’,f,’Vertices’,v,’FaceColor’,c) → v é o conjunto de
vértices onde cada coluna indica uma direção (x,y,z), cada linha de
f indica um polígono, seus elementos são os índices dos vértices de
v, c é a cor do polígono.
Exemplo:
I v = [0 0 0;2 0 0;1 2 0;1 1 2]
I f = [1 2 3;1 2 4;1 3 4;2 3 4];
I patch(’Faces’,f,’Vertices’,v,’FaceColor’,’green’)
I view(3), grid on
97/98
Obrigado!
Contato:
daniel.lima@ufsc.br