informática para ciências e engenharias (b)...
TRANSCRIPT
![Page 1: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/1.jpg)
Informática para Ciências e Engenharias (B)
2015/16
Teórica 6
![Page 2: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/2.jpg)
Na aula de hoje
l Representação de imagens • pixels, sistema RGB
l Gráficos em MATLAB • Gráficos simples • Imagens 2D
• Exemplo: difusão • Gráficos 3D
• Exemplo: simulação estocástica de um incêndio
l (Revisões)
![Page 3: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/3.jpg)
Ecrã, Imagens e Pixels
Ecrã, imagens e pixels Ecrã, imagens e pixels
![Page 4: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/4.jpg)
Ecrã, Imagens e Pixels
l Representação de imagens • pixels, sistema RGB
l O ecrã é uma matriz de picture elements (pixels) • a resolução é normalmente indicada pelo seu número de
linhas x colunas: • 1024 x 768, 800 x 600, ... (4:3), • 1280 x 720, 1366 x 178, 1920×1080, … (16:9)
• cada imagem é também uma matriz de pixels
![Page 5: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/5.jpg)
Imagem e Pixels
![Page 6: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/6.jpg)
Imagens e Pixels
l Caracteres são representados por pixels
![Page 7: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/7.jpg)
Cores
l No formato True Color, cada pixel tem 3 bytes (24 bits) para representar a cor • RGB
• 1 byte (8 bits) para vermelho (Red) • 1 byte (8 bits) para verde (Green) • 1 byte (8 bits) para azul (Blue)
• Hexadecimal • números representados com 0, 1, …, 9, A, …, F • dois dígitos = 16*16 = 256 combinações ( de 00 a FF)
![Page 8: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/8.jpg)
Cores
![Page 9: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/9.jpg)
Cores
l “Cubo das cores” • (0,0,0) preto • (255,255,255) branco • (255, 0, 0) vermelho • (0, 255, 0) verde • (0, 0, 255) azul
http://en.wikipedia.org/wiki/RGB_color_model
![Page 10: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/10.jpg)
Manipulação do Ecrã
l CPU dá instruções de escrita
l na RAM de vídeo • normalmente na placa gráfica. • 3 bytes por pixel em “true color”
![Page 11: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/11.jpg)
Manipulação do Ecrã
l O controlador do ecrã na placa gráfica actualiza os pixels no ecrã • tipicamente 50 vezes por segundo
(ou mais)
![Page 12: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/12.jpg)
Gráficos 2D
Gráficos em MATLAB: 2D Ecrã, imagens e pixels
![Page 13: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/13.jpg)
Gráficos 2D
l Gráficos simples podem ser feitos em MATLAB através da função pre-definida plot.
l function plot(x, y, opts)
• x é um vector com as abcissas • y é um vector com as coordenadas • opts é uma string especificando símbolos e cores
l Nota: Existem várias variantes desta função pré-definida/comando, que podem ser vista do manual.
![Page 14: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/14.jpg)
Gráficos 2D
Exemplo:
l Gráfico do seno
octave:1> x=-pi:0.1:pi; octave:2> y=sin(x); octave:3> plot(x,y,'*-r') octave:4>
![Page 15: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/15.jpg)
Gráficos 2D
Exemplo:
l Gráfico do seno
octave:1> x=-pi:0.1:pi; octave:2> z=-sin(x); octave:3> plot(x,z,’+b') octave:4>
![Page 16: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/16.jpg)
Gráficos 2D
Exemplo:
l Juntar gráficos
octave:3> plot(x,y,'*-r') octave:4> plot(x,z,’+b')
![Page 17: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/17.jpg)
Gráficos 2D
l Hold on • Mantém o gráfico anterior
l Adicionar legendas
octave:1> x=-pi:0.1:pi; octave:2> y=sin(x); octave:3> plot(x,y,'*-r’) octave:4> plot(x,-y,'+b; -seno(x);') octave:5> hold on octave:6> plot(x,y,'*-r; seno(x);’)
![Page 18: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/18.jpg)
Gráficos 2D
l Em resumo: • Gráficos simples podem ser feitos em MATLAB através da
função pre-definida • plot(x, y, opts)
l Para melhorar o aspecto gráfico, podem ainda ser usados os comandos • Title(titulo da imagem); • Xlabel(legenda do eixo dos xx); • Ylabel(legenda do eixo dos yy);
![Page 19: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/19.jpg)
Gráficos 2D
l Nota: • Em MATLAB (MATrix LABoratory) muitas operações
comuns são estendidas a matrizes e vectores. • No entanto, isto não é verdade na generalidade das
linguagens de programação.
![Page 20: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/20.jpg)
Gráficos 2D
l “Manchas gráficas” podem ser especificadas em MATLAB através da função pre-definida fill.
l função fill(vx, vy, vCor) • vx vector com coordenadas x de 4 pontos • vy vector com coordenadas y de 4 pontos • vCor vector com 3 valores RGB, entre 0 e 1
![Page 21: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/21.jpg)
Gráficos 2D
![Page 22: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/22.jpg)
Gráficos 2D
l colormap e image • com colormap definimos um mapa de cores.
• Matriz de 3 colunas, com uma cor RGB por linha • a função image representa uma matriz com as cores
definidas • Cada célula da matriz indica o índice (linha) da cor no
mapa de cores.
![Page 23: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/23.jpg)
Gráficos 2D
mapaCores=([1,0,0;0,1,0;0,0,1]) imagem=floor(rand(50)*3)+1; colormap(mapaCores) image(imagem)
![Page 24: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/24.jpg)
Simulação de Difusão
Exemplo 1: Simulação de Difusão (em 2D)
![Page 25: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/25.jpg)
Simulação de Difusão
l Vamos simular a difusão de X numa solução (em 2D) • Representação:
• Uma matriz (de pixels) com concentrações • Simulação:
• Discreta: Simular a difusão por passos • Em cada passo de simulação:
• calcular quanto difunde para os 8 vizinhos • Actualizar a matriz de concentrações
![Page 26: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/26.jpg)
Simulação de Difusão
l Vamos simular a difusão de X numa solução (em 2D) • Representação:
• Uma matriz (de pixels) com concentrações • Simulação:
• Discreta: Simular a difusão por passos • Condição fronteira (não há 8 vizinhos)
• As células nos extremos são constantes • (há alternativas, como usar uma fronteira periódica)
![Page 27: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/27.jpg)
Simulação de Difusão
l Vamos usar 2 funções :
• é bom ter os cálculos numa parte: function novaConc = passodifusao(matConc, coefDif)
• função para calcular um passo de difusão
• e os gráficos noutra: function difusao(matConcs, coefDif, iteracoes)
• chama a anterior a cada passo e desenha o gráfico
![Page 28: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/28.jpg)
Simulação de Difusão
![Page 29: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/29.jpg)
Simulação de Difusão
Normalmente evita-se aninhar muitos ciclos remetendo parte para outra função. Mas este caso exigiria copiar toda a matriz matConc, pelo que é mais eficiente deixar na mesma função.
![Page 30: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/30.jpg)
Simulação de Difusão
A indentação é muito importante nestes casos. Sem indentação correcta o código fica ilegível e muito mais propenso a erros (por exemplo, faltar o end).
![Page 31: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/31.jpg)
Simulação de Difusão
![Page 32: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/32.jpg)
Simulação de Difusão
Para todas as células (l,c) internas da matriz
![Page 33: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/33.jpg)
Simulação de Difusão
Matriz de 3x3 centrada em (l,c)
![Page 34: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/34.jpg)
Simulação de Difusão
Para todos os vizinhos da célula em (l, c) excepto o próprio)
![Page 35: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/35.jpg)
Simulação de Difusão
Calcular quanto se difunde e actualizar na matriz da nova concentração. Actualizamos na nova para não alterar os valores a usar para as outras células.
![Page 36: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/36.jpg)
Simulação de Difusão
l testar passodifusao
octave:12> testMat=zeros(5); octave:13> testMat(3,3)=1 testMat = 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
octave:14> tesMat=passodifusao(testMat,0.1) tesMat = 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.05000 0.10000 0.05000 0.00000 0.00000 0.10000 0.40000 0.10000 0.00000 0.00000 0.05000 0.10000 0.05000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
![Page 37: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/37.jpg)
Simulação de Difusão
![Page 38: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/38.jpg)
Simulação de Difusão
Gradiente de 100 tons de branco até azul
![Page 39: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/39.jpg)
Simulação de Difusão
Para cada iteração • calcular um passo de difusão • desenhar a imagem. • comando axis square evita a distorção da imagem • refresh obriga a desenhar o gráfico durante a simulação.
![Page 40: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/40.jpg)
Simulação de Difusão
l Gota
concs=zeros(30); concs(14:16,14:16)=500; difusao(concs,100);
![Page 41: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/41.jpg)
Simulação de Difusão
l Salpicos
concs=zeros(30); concs(2:end-1,2:end-1)=... (rand(28)>0.9)*500; difusao(concs,0.05,100);
![Page 42: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/42.jpg)
Simulação de Difusão
l Gravar o resultado numa série de imagens • Nota: print não faz parte da matéria print(nome) (sprintf veremos mais tarde)
• Na função difusao
for f=0:iteracoes image(matConcs); axis square; refresh; figs = strcat(name,'%03i.png'); print(sprintf(figs,f)); matConcs=passodifusao(matConcs,coefDif); end
![Page 43: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/43.jpg)
Gráficos 3D
Gráficos em MATLAB: 3D
![Page 44: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/44.jpg)
Gráficos 3D
l Para fazer um gráfico em 3D precisamos de • Matrizes X, Y
• Formam a “grelha de base” (mesh grid) • Matriz Z
• associa um valor z a cada par (x,y)
x = 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
y = 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5
z = 5 4 1 8 10 7 10 7 10 6 9 6 6 7 5 4 3 7 7 2 7 1 5 3 9
![Page 45: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/45.jpg)
Gráficos 3D
l Nota: • matrizes são indexadas por (linha, coluna) • mas x varia na horizontal e y na vertical • logo, x é a coluna e y a linha
• é preciso atenção a esta convenção
x = 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
y = 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5
z = 5 4 1 8 10 7 10 7 10 6 9 6 6 7 5 4 3 7 7 2 7 1 5 3 9
![Page 46: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/46.jpg)
Gráficos 3D
l Para fazer um gráfico em 3D precisamos de • Matrizes X, Y, Z
• X e Y podem ser criadas com a função meshgrid e.g. [xx,yy] = meshgrid(1:5, 1:5) • Chamar uma das funções
• mesh(x,y,z) traça uma rede 3D • surf(x,y,z) traça uma superfície 3D
![Page 47: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/47.jpg)
Gráficos 3D
l Para fazer um gráfico em 3D ...
• mesh(x,y,z) • traça uma rede 3D
• surf(x,y,z) • traça uma superfície
3D
![Page 48: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/48.jpg)
Gráficos 3D
l Especificar cores: • Podemos acrescentar uma matriz para indicar quais as
cores a usar • tem de ter a mesma dimensão das outras • as cores são as do colormap corrente, interpoladas. • o menor valor da matriz C corresponde à primeira cor
do mapa de cores • o maior valor da matriz C corresponde à última cor do
mapa de cores • os valores intermédios são interpolados
![Page 49: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/49.jpg)
Gráficos 3D
c=ones(5) c(1,1)=2; c(4,4)=3; colormap([1,0,0;0,1,0;0,0,1]); surf(x,y,z,c)
Célula (1,1) (cor 2 do color map) Green -[0,1,0])
Célula (4,4) (cor 3 do color map) Blue -[0,0,1])
![Page 50: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/50.jpg)
Gráficos 3D
l Para mudar a orientação: • view(azimute, elevação)
• azimute e elevação em graus • por omissão: • Azimute = -37.5º • Elevação = 30º
![Page 51: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/51.jpg)
Gráficos 3D
l Para rodar o ponto de vista: • Com os ponteiros do relógio: aumentar azimute
>> view(-20,+30)
• Contra os ponteiros do relógio: diminuir azimute
>> view(-60,+30)
![Page 52: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/52.jpg)
Gráficos 3D
l Para variar a elevação: • Ver mais “de baixo”: diminuir o ângulo de elevação
>> view(-37.5,+15)
• Ver mais “de cima”: aumentar o ângulo de elevação
>> view(-37.5,+90)
![Page 53: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/53.jpg)
Simulação de um Incêndio
Exemplo 2: Simulação de um Incêndio (em 3D)
![Page 54: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/54.jpg)
Simulação de um Incêndio
l Objectivo • Modelando a elevação do terreno com uma matriz 3D
![Page 55: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/55.jpg)
Simulação de um Incêndio
l Objectivo • Modelando a elevação do terreno com uma matriz 3D • Queremos simular como um incêndio se propaga no terreno
• Considerando alguns factores • Pode haver vento • O declive pode fazer diferença
![Page 56: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/56.jpg)
Simulação de um Incêndio
l Simulação • numa matriz, cada célula indica que a vegetação está
• 1- normal • 2- queimada • 3- a arder
• a que está a arder pode propagar o fogo aos 8 vizinhos • com uma probabilidade que depende do • do declive, • do vento, • ...
![Page 57: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/57.jpg)
Simulação de um Incêndio
l Simulação • numa matriz, cada célula indica que a vegetação está
• 1- normal • 2- queimada • 3- a arder
• a probabilidade de propagar o fogo a cada vizinho pode ser dada por • uma matriz de 3x3 (pontos cardiais e colaterais) • assim podemos simular vento ou outros factores
dando valores diferentes para direcções diferentes • modificada pelo declive
![Page 58: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/58.jpg)
Simulação de um Incêndio
l Simulação • probabilidade de propagar o fogo:
• modificada pelo declive • somar um factor dependente da diferença de elevação • mais provável propagar-se a subir
0.10000 0.14000 0.10000 0.14000 0.00000 0.14000 0.10000 0.14000 0.10000
![Page 59: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/59.jpg)
Simulação de um Incêndio
l Simulação • a cada iteração da simulação temos de
• propagar o fogo de todas as áreas a arder • testar as áreas a arder para determinar quais se
apagam • para a simulação temos de
• calcular cada iteração • representar graficamente o progresso do incêndio
• 3 funções
![Page 60: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/60.jpg)
Simulação de um Incêndio
l Simulação • Assinaturas das funções:
• function novoEstado = propaga(estado, ... mapa, probPropagar, efeitoDeclive)
• function estado = extingue(estado, probApagar)
• function incendio(mapa, focoInicial, ... probPropagar, probApagar, ... efeitoDeclive, iteracoes)
![Page 61: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/61.jpg)
Simulação de um Incêndio
l Propagar os focos do incêndio
![Page 62: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/62.jpg)
Para todas as células internas da matriz que estejam a arder. Nota: Não queremos propagar as da fronteira para evitar sair dos limites da matriz).
![Page 63: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/63.jpg)
Para todos os vizinhos por arder dessa célula. Nota: não precisamos excluir a própria célula porque essa está a arder.
![Page 64: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/64.jpg)
Calculamos a probabilidade de propagação modificando o valor da matriz pelo declive Nota: mais provável propagar-se para cima.
![Page 65: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/65.jpg)
Se propaga, marcamos no novoEstado (e não no estado para evitar propagar imediatamente esse novo foco). Nota: rand devolve um valor pseudo-aleatório entre 0 e 1.
![Page 66: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/66.jpg)
Simulação de um Incêndio
l Extinguir as zonas a arder
![Page 67: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/67.jpg)
Simulação de um Incêndio
l Para simular • preparar o gráfico • ciclo das iterações
• propagar • extinguir • desenhar
![Page 68: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/68.jpg)
Simulação de um Incêndio
l Simular o incêndio
![Page 69: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/69.jpg)
Simulação de um Incêndio
Cria a matriz com o estado inicial da vegetação do mesmo tamanho da matriz com a elevação do terreno. Podia ser: ones(size(mapa,1),size(mapa,2)) Depois inicia o incêndio.
![Page 70: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/70.jpg)
Simulação de um Incêndio
Prepara as matrizes para o gráfico 3D. Nota: x é colunas, y linhas. Cria o mapa de cores (verde para normal, preto para queimado, laranja para fogo).
![Page 71: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/71.jpg)
Simulação de um Incêndio
A cada iteração propaga e extingue os fogos activos com as probabilidades respectivas.
![Page 72: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/72.jpg)
Simulação de um Incêndio
Depois desenha o gráfico, orienta-o adequadamente ... e força a sua actualização (sem o refresh só veríamos o gráfico no final da simulação)
![Page 73: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/73.jpg)
Simulação de um Incêndio
probPropagar = 0.10000 0.14000 0.10000 0.14000 0.00000 0.14000 0.10000 0.14000 0.10000 efeitoDeclive = 0
l Sem vento nem declive
![Page 74: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/74.jpg)
Simulação de um Incêndio
probPropagar = 0.10000 0.14000 0.10000 0.14000 0.00000 0.14000 0.10000 0.14000 0.10000 efeitoDeclive = 0.1
l Sem vento mas com declive
![Page 75: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/75.jpg)
Simulação de um Incêndio
l Com vento e declive
probPropagar = 0.04000 0.02000 0.04000 0.14000 0.00000 0.14000 0.20000 0.40000 0.20000 efeitoDeclive = 0.1
![Page 76: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/76.jpg)
Resumo
l Gráficos 2D (pontos, linha) • plot(vectorX, vectorY, opções) • hold on, hold off • Clf
l Imagens 2D (pontos, linha) • fill(coordsX, coordsY ,corRGB) • colormap(matrizCoresRGB) • image(matrizIndicesCores)
![Page 77: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/77.jpg)
Resumo
l Gráficos 3D • meshgrid(x,y), • mesh ou surf (x,y,z), ou (x,y,z,c) • view(azimute, elevação)
![Page 78: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/78.jpg)
Para estudar esta aula
l Manual Octave • Capítulo 15, plotting
l MATLAB plotting functions • http://www.mathworks.com/help/matlab/creating_plots/using-
high-level-plotting-functions.html
l Por curiosidade (para a próxima aula) • Método Monte Carlo: • http://en.wikipedia.org/wiki/Monte_Carlo_method
![Page 79: Informática para Ciências e Engenharias (B) 2015/16iceb.ssdi.di.fct.unl.pt/1516/web/resources/iceb_t06.pdf · l Gráficos em MATLAB ... • a resolução é normalmente indicada](https://reader030.vdocuments.com.br/reader030/viewer/2022020415/5c03651d09d3f219408bf689/html5/thumbnails/79.jpg)
Dúvidas ?