75
Informática para Ciências e Engenharias 2013/14 Teórica 5

Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

Informática para Ciências e Engenharias

2013/14

Teórica 5

Page 2: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

2

Na aula de hoje...

Representação de imagens• pixels, sistema RGB

Gráficos em MATLAB• Gráficos simples

• Imagens 2D• Exemplo: difusão

• Gráficos 3D• Exemplo: simulação estocástica de um incêndio

(Revisões)

Page 3: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

3

Ecrã, imagens e pixels

Page 4: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

4

O ecrã

O ecrã é uma matriz de picture elements (pixels)• a resolução é normalmente indicada por

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 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

5

A imagem

Page 6: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

6

Pixels representam caracteres

Page 7: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

7

Cores

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 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

8

Cores

Page 9: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

9

Cores

• “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 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

10

Manipulação do ecrã

CPU dá instruções de escritana 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 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

11

Manipulação do ecrã

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 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

12

Gráficos em 2D: plot

Page 13: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

13

Gráficos em MATLAB

Função plot(x, y, opts)• opts é uma string especificando símbolos e

cores

Page 14: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

14

Gráficos em MATLAB

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 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

15

Gráficos em MATLAB

octave:1> x=-pi:0.1:pi;octave:2> y=sin(x);octave:3> plot(x,y,'*-r')octave:4> plot(x,-y,'+b')octave:5>

Page 16: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

16

Gráficos em MATLAB

octave:1> x=-pi:0.1:pi;octave:2> y=sin(x);octave:3> plot(x,y,'*-r')octave:4> plot(x,-y,'+b')octave:5>

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 17: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

17

Gráficos em MATLAB

octave:1> x=-pi:0.1:pi;octave:2> y=sin(x);octave:3> plot(x,y,'*-r')octave:4> plot(x,-y,'+b')octave:5> hold onoctave:6> plot(x,y,'*-r')octave:7>

Page 18: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

18

Gráficos em MATLAB

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 19: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

19

Gráficos em MATLAB

Page 20: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

20

Gráficos em MATLAB

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 21: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

21

Gráficos em MATLAB

mapaCores=([1,0,0;0,1,0;0,0,1])imagem=floor(rand(50)*3)+1;colormap(mapaCores)image(imagem)

Page 22: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

22

Simulação: difusão

Page 23: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

23

Simulação: difusão

Vamos simular a difusão de X numa solução (em 2D)• Uma matriz com concentrações

• A cada passo da simulação• calcular quanto difunde para os 8 vizinhos:

Page 24: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

24

Simulação: difusão

Dividir em duas funções• é bom ter os cálculos numa parte:

• função para calcular um passo de difusão

function novaConc=passodifusao(matConc,coefDif)

• e os gráficos noutra:

• chama a anterior a cada passo e desenha o gráfico

function difusao(matConcs,coefDif,iteracoes)

Page 25: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

25

Simulação: difusão

Page 26: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

26

Simulação: difusão

Para todas as células internas da matriz

Page 27: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

27

Percorrer a matriz

Page 28: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

28

Percorrer a matriz

Page 29: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

29

Simulação: difusão

Para todos os vizinhos da célula em (l, c)(excepto o próprio)

Page 30: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

30

Percorrer a vizinhança

Matriz de 3x3 centrada em (l,c)

Page 31: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

31

Simulação: 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 32: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

32

Simulação: 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 33: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

33

Simulação: 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 34: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

34

Simulação: difusão

testar passodifusao

octave:83> testMat=[0,0,0;0,1,0;0,0,0]testMat = 0 0 0 0 1 0 0 0 0

octave:84> tesMat=passodifusao(testMat,0.1)tesMat = 0.050000 0.100000 0.050000 0.100000 0.400000 0.100000 0.050000 0.100000 0.050000

Page 35: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

35

Simulação: difusão

Page 36: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

36

Simulação: difusão

Gradiente de 100 tons de branco até azul

Page 37: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

37

Simulação: difusão

Para cada iteração calcular um passo de difusão e desenhar a imagem. O comando axis square evita a distorção da imagem e o refresh obriga a desenhar o gráfico durante a simulação.

Page 38: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

38

Simulação: difusão

Gota

concs=zeros(30);concs(14:16,14:16)=500;difusao(concs,0.1,50);

Page 39: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

39

Simulação: difusão

Salpicos

concs=zeros(30);

concs(2:end-1,2:end-1)=... (rand(28)>0.9)*500;

difusao(concs,0.05,60);

Page 40: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

40

Gráficos em MATLAB: 3D

Page 41: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

41

Gráficos em MATLAB

Para fazer um gráfico em 3D precisamos de• Matrizes X, Y, Z

• para associar 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 42: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

42

Gráficos em MATLAB

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 43: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

43

Gráficos em MATLAB

Para fazer um gráfico em 3D precisamos de• Matrizes X, Y, Z

• as matrizes x e y podem ser criadas com a função meshgrid

e.g. [xx,yy]=meshgrid(1:5,1:5)

• chamar a funçãomesh(x,y,z) traça uma rede 3D

surf(x,y,z) traça uma superfície 3D

Page 44: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

44

Gráficos em MATLAB

Page 45: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

45

Gráficos em MATLAB

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 46: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

46

Gráficos em MATLAB

c=ones(5)c(2,2)=2;c(3,3)=3;colormap([1,0,0;0,1,0;0,0,1]);surf(x,y,z,c)

Page 47: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

47

Gráficos em MATLAB

Para mudar a orientação:view(azimute, elevação)

octave:118> view(45,20)octave:119> view(85,60)

Page 48: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

48

Simular um incêndio

por Monte Carlo

Page 49: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

49

Monte Carlo

Nome cunhado pelo matemático Nicholas Constantine Metropolis• (1915-1999)

Conjunto de métodos baseados em números (pseudo) aleatórios.

Page 50: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

50

Simular um incêndio

Objectivo• Temos uma matriz com a elevação do terreno

http://visibleearth.nasa.gov/view.php?id=73934

Page 51: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

51

Simular um incêndio

Objectivo• Queremos simular como um incêndio se

propaga no terreno• pode haver vento ou outros factores

Page 52: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

52

Simular um incêndio

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 declive,

vento, etc

Page 53: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

53

Simular um incêndio

Simulação• a probabilidade de propagar o fogo a cada

vizinho pode ser dada por uma matriz de 3x3• assim podemos simular vento ou outros factores

dando valores diferentes para direcções diferentes

• modificada pelo declive

Page 54: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

54

Simular um incêndio

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.100000.14000 0.00000 0.140000.10000 0.14000 0.10000

Page 55: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

55

Simular um incêndio

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 56: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

56

Simular um incêndio

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 57: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

57

Simular um incêndio

Propagar os focos de incêndio

Page 58: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

58

Simular um incêndio

Para todas as células internas da matriz que estejam a arder.(Não queremos propagar as da fronteira para evitar sair dos limites da matriz).

Page 59: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

59

Simular um incêndio

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 60: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

60

Simular um incêndio

Calculamos a probabilidade de propagação modificando o valor da matriz pelo declive (mais provável propagar-se para cima).

Page 61: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

61

Simular um incêndio

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 62: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

62

Simular um incêndio

Extinguir as zonas a arder

Page 63: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

63

Simular um incêndio

Para simular• preparar o gráfico

• ciclo das iterações• propagar

• extinguir

• desenhar

Page 64: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

64

Simular um incêndio

Page 65: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

65

Simular um incêndio

Cria a matriz com o estado inicial da vegetação e o 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 66: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

66

Simular 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 67: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

67

Simular um incêndio

A cada iteração propaga e extingue os fogos activos com as probabilidades respectivas.

Page 68: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

68

Simular 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 69: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

69

Simular um incêndio

Sem vento nem declive

probPropagar =

0.10000 0.14000 0.10000 0.14000 0.00000 0.14000 0.10000 0.14000 0.10000

efeitoDeclive = 0

Page 70: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

70

Simular um incêndio

Só declive

probPropagar =

0.10000 0.14000 0.10000 0.14000 0.00000 0.14000 0.10000 0.14000 0.10000

efeitoDeclive = 0.1

Page 71: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

71

Simular um incêndio

probPropagar =

0.04000 0.02000 0.04000 0.14000 0.00000 0.14000 0.20000 0.40000 0.20000

efeitoDeclive = 0.1

Declive e vento

Page 72: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

72

Resumindo

Gráficos 2D (pontos, linha)• plot(vectorX, vectorY, opções)

• hold on hold off

• clf

Page 73: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

73

Resumindo

Imagens 2D• fill(coordsX, coordsY ,corRGB)

• colormap(matrizCoresRGB) image(matrizIndicesCores)

Gráficos 3D• meshgrid(x,y),

• mesh ou surf (x,y,z), ou (x,y,z,c)

• view(azimute, declinação)

Page 74: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

74

Para estudar esta aula

Manual Octave• Capítulo 15, plotting

MATLAB plotting functions• http://www.mathworks.com/help/matlab/creati

ng_plots/using-high-level-plotting-functions.html

Por curiosidade• Método Monte Carlo:

• http://en.wikipedia.org/wiki/Monte_Carlo_method

Page 75: Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T05.pdf · 45 Gráficos em MATLAB Especificar cores: •Podemos acrescentar uma matriz

75

Dúvidas