Programação e Aplicações Gráficas

Slides:



Advertisements
Apresentações semelhantes
Estruturas de Controle
Advertisements

Algoritmo I Aula 05 Pseudo-Linguagem.
Linguagem C Marco Reis.
PORTUGUÊS ESTRUTURADO E PSEUDOCÓDIGO
1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005.
Shell Script Professor: João Paulo
Universidade Federal de São Carlos Introdução à Linguagem C Comandos.
Pascal comandos iterativos: FOR WHILE REPEAT Matrizes (tabelas)
PROGRAMAÇÃO MODULAR (com uso de subprogramas)
The language of tecnical computing
Linguagem C Estruturas de Controle de Fluxos
Curso de PHP O comando // serve para comentário linear no php
FLG Análise Espacial e Geoprocessamento
OBS: Este ppt não é o definitivo (Versão Beta)
9 Controle de fluxo Seqüenciadores. Jumps. Escapes. Exceções.
LINGUAGEM C Centro Federal de Educação Tecnológica da Paraíba Coordenação de Informática Professor: Lafayette B. Melo.
Introdução ao JavaScript
Revisão da Linguagem C.
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
Tópicos avançados em internet B Carlos Oberdan Rolim Ciência da Computação.
JAVA: Conceitos Iniciais
Unidade I: “Dê um mergulho rápido”
IAED Tagus, 2009/2010 Introdução à Programação em C (I)
Curso básico de PHP 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
Introdução ao MatLab Aula 4
FTIN Formação Técnica em Informática
Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC
Seminário 1: Revisão de C
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
MÉTODOS NUMÉRICOS APLICAÇÃO NO MATLAB
Matlab Mini Curso PET 2012.
Monitoria de Sistemas Inteligentes
Introdução ao MATLAB 5.3 para Hidrólogos
Algoritmo e Programação
Linguagem e Ambiente Scratch
PROGRAMAÇÃO PARA INTERNET Prof.: Jean Carlo Mendes
Capítulo 5 Structures. A - Sequence E - Formula Node B - Case F - Variável Global C - For Loop G - Variável Local D - While Loop ABCD FG E.
Introdução à programaçao em PERL Levi Lúcio, Vasco Amaral, Programação em PERL, FCA-Editora de Informática.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Prof.Celso J. Munaro (DEL-CT-UFES)
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
Introdução ao MATLAB 5.3 para Hidrólogos
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Monitoria de Sistemas Inteligentes IF684
MatLab (Matrix Laboratory)
Introdução aos Computadores e Programação DI-FCT-UNL-2003/2004
MATLAB - Matrix Laboratory Adaptado de Profa
Aula Prática 3 Funções Monitoria Introdução à Programação.
Iº Workshop Linux da Unijorge
CES-10 INTRODUÇÃO À COMPUTAÇÃO
José Francisco PHP & MySQL. Os slides originais são parte do material de cursos anteriores do curso de PHP, ministrados por Sérgio Clemente.
Programação de Computadores - 1
Introdução à Programação
Curso Técnico em Informática Professor Igor Vale.
Profa. Maria Augusta Constante Puget
Trechos de código que permitem reutilização de uma mesma tarefa. Qualquer código PHP pode estar contido no interior de uma função. Não se pode definir.
JAVASCRIPT Programação Web. O que é  E uma linguagem interpretada que e executada na maquina do cliente  Não esta associada ao framework java  Não.
Andréa Iabrudi 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I.
ARQUIVOS DE SCRIPTS THOBER CORADI DETOFENO, MSC. Aula 05 JOINVILLE Universidade do Estado de Santa Catarina – CCT/UDESC.
Linguaguem de Programação II
Programação para Web I AULA 4 ESTRUTURAS DE CONTROLE.
11 Revisão da Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
1 Programação – JAVA Unidade 3 – Loops e Lógica Prof. Aparecido V. de Freitas Curso de Ciência da Computação.
Computadores vs. Programas / Algoritmos Computadores vs. Programas -> Algoritmos O tratamento de problemas através do computador geralmente envolve uma.
Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#
Introdução ao Grads Grads Script e Funções MSc. José Leandro Campos.
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
IF E ITERAÇÃO WHILE Dilvan Moreira (baseado no livro Big Java e T. Munzner)
 Linguagem do tipo script  Roda do lado do servidor – “server-side”  Suporte à vários BDs (MySQL, Postgres, Oracle, entre outros.)  Ferramentas grátis.
Recursividade, Entrada pelo teclado e Funções com retorno Dilvan Moreira.
Transcrição da apresentação:

Programação e Aplicações Gráficas UNIVERSIDADE DA BEIRA INTERIOR Versão: 15 de Junho de 2007

Programação e Aplicações Gráficas Scripts Funções Programação Gráficos 2D 3D Animação

Programação e Aplicações Gráficas Scripts Programação e Aplicações Gráficas Ficheiros Scripts Script é um conjunto de comandos do MATLAB gravados num ficheiro (com a extensão .m chamados m-files). Para executar basta escrever o nome do arquivo (sem a extensão .m). É equivalente a escrever todos os comandos na janela principal, só que armazenado num arquivo. Trabalha com variáveis globais (apresentadas no directório de trabalho)

Programação e Aplicações Gráficas Exemplo de um script Vamos escrever um script para resolver o seguinte sistema linear de equações: Ax=b, onde A depende de uma variável r.

Programação e Aplicações Gráficas Executando o script no MATLAB >> r = 1 r = 1 >> solvex det_A = 64 x = -0.0312 0.2344 1.6875 Os valores do “det_A” e “x" aparecem na janela porque não tem ponto e vírgula no final da linha correspondente

Programação e Aplicações Gráficas Cuidados que se deve ter: NUNCA grave o script com o mesmo nome de uma variável nele inscrita. O nome do arquivo script deve começar por uma letra. Seja cuidadoso com os nomes das variáveis no script (todas essas variáveis são gravadas no directório de trabalho)

Exercício 1 Exercício 2 Exercício 3 Faça um script que mostra na janela principal uma tabela de conversão de graus Celsius para graus Fahrenheit. ( Considere C=-40:5:100) Exercício 2 Escreva um script que representa a função tangente entre –pi/2 e pi/2 e insere o título e legendas nos eixos. Exercício 3 Construa um script que transforma um número x em graus, num número y em radianos.

Programação e Aplicações Gráficas Funções Programação e Aplicações Gráficas Funções (function files) Funções são m-files contendo um conjunto de comandos do MATLAB, como um script, só que todas as variáveis são locais e não globais. São como programas ou subrotinas no Fortran. A 1ª linha do arquivo começa definindo as variáveis de entrada e de saída, e o nome da função. O nome da função deve ter o mesmo nome do arquivo a ser gravado.

Programação e Aplicações Gráficas Dicas para criação de funções Crie uma estrutura lógica e pense na sequência computacional antes de escrever o código. Escreva-a num papel!!! Defina as variáveis de entrada e saída. Traduza o que escreveu no papel para o MATLAB. Defina nomes lógicos para as variáveis e funções. Escreva o máximo de comentários possíveis no código. Divida grandes blocos computacionais e escreva-os em funções separadas. Verifique os erros e a saída com mensagens de erro e use o artifício do “;” para verificar os passos intermédios de cálculo.

Programação e Aplicações Gráficas Cuidados que se deve ter: O termo de definição deve ser escrito com letra minúscula (“function” e não “Function”) . Os comentários começam com “%”, podendo ser colocados em qualquer lugar. Todas as linhas com comentários imediatamente após o termo de definição são mostradas no MATLAB help. Uma simples variável de saída não precisa ser fechada por parênteses rectos [ ]. O nome das variáveis de entrada e de saída na linha do termo de definição são variáveis locais.

Para executar uma função Considere uma função, cuja linha de definição é a seguinte: function [rho,H,F] = motion(x,y,t); As variáveis xt, yt e time devem ser definidas antes de executar o comando. >> [r,angmom,force] = motion(xt,yt,time); >> [r,h,f] = motion(rx,ry,[0:100]); >> [r,h,f] = motion(2,3.5,0.001); >> [radius,h] = motion(rx,ry); >> motion(xt,yt,t); As variáveis rx e ry devem ser definidas antes de executar o comando e t é especificada. Todas as variáveis são especificadas. A terceira variável de entrada tem que ser especificada dentro da função. A terceira variável e saída não é disponível. Nenhuma variável de saída fica disponível.

>> [det_A,y] = solvex(1); >> det_A ans = 64 >> y function [det_A,x]=solvex(r) % SOLVEX Resolve um sistema de equações lineares de um matriz 3x3 % com parâmetro r. % Para chamar esta função, digite: % [det_A,x] = solvex(r) % r é a entrada e det_A e x são as saídas A = [5 2*r r; 3 6 2*r-1; 2 r-1 3*r] b = [2;3;5]; det_A = det(A); x = A\b; >> [det_A,y] = solvex(1); >> det_A ans = 64 >> y -0.0312 0.2344 1.6875

Executando uma função dentro de outra function [det_A,x]=solvex(r) % SOLVEX Resolve um sistema de equações lineares de um matriz 3x3 % com parâmetro r. % Para chamar esta função, digite: % [det_A,x] = solvex(r) % r é a entrada e det_A e x são as saídas A = [5 2*r r; 3 6 2*r-1; 2 r-1 3*r] b = [2;3;5]; det_A = det(A); x = A\b; A função “det” é chamada dentro da função solvex. Porém, quando o nome da função é dinâmico é feito de forma diferente (use “feval”).

Programação e Aplicações Gráficas Outros Comandos pcode nomedoarquivo – protege o direito de uso do código. profile – avalia a performance das funções. profile on [det_A,x] = solvex(r) profile report

Exercício 1 Exercício 2 Exercício 3 Escreva uma função cuja entrada é um valor x em graus e o converte para radianos. Exercício 2 Faça uma função que dadas 2 matrizes calcule a soma e diferença. Exercício 3 Construa uma função que converte a pressão de atm para N/m2.

Programação e Aplicações Gráficas Conjunto de comandos usados para controlar o fluxo das operações. Tipos: “for” e “while” – para “loops” “if-elseif-else” – estrutura condicional simples “switch-case-otherwise” – estrutura condicional avançada Todos esses controladores de fluxo devem terminar com “end”.

Programação e Aplicações Gráficas Fazendo “loops” – “for” Um “for” é usado para repetir uma operação ou um grupo de operações para um número fixo de vezes. % Exemplo for m=1:100 num = 1/(m+1) end for n = 100:-2:0, k=1/(exp(n)), end

Programação e Aplicações Gráficas Fazendo “loops” – “while” Um “while” é usado para repetir uma operação ou um grupo de operações para um número indefinido de vezes até que a condição especificada pelo “while” seja satisfeita. % Exemplo num = 1; i = 1; while num<10000 num = 2^i; v = [i; num]; i = i + 1; end

Programação e Aplicações Gráficas Condicional simples – “if-elseif-else” Cria blocos condicionais. % Exemplo i = 6; j = 21; if i > 5 k = i; elseif (i > 1) & (j == 20) k = 5*i + j else k = 1; end

Programação e Aplicações Gráficas Condicional avançado – “switch-case-otherwise” Cria blocos condicionais. Uma variável é usada como um dispositivo de direccionamento (switch), onde cada valor dessa variável direcciona para um caso (case). Programação e Aplicações Gráficas % Exemplo 1 flag = 1; switch flag case 1 “1º bloco computacional” case 2 “2º bloco computacional” otherwise “último bloco computacional” end

Programação e Aplicações Gráficas Operadores Programação e Aplicações Gráficas Relacionais <, <=, >, >=, ==, ~= Comparam os elementos correspondentes entre duas matrizes da mesma dimensão Se for comparar uma matriz com um escalar então compara cada elemento da matriz com o escalar O resultado é uma matriz de 1 e 0 Lógicos “&” ou “AND” ; “|” ou “OR” ; “~” ou “NOT” ; “XOR” Devolve variável Booleana, 1 ou 0

Programação e Aplicações Gráficas Comandos de paragem break – dentro de um “for” ou “while”, termina a execução de um “loop” - ciclo. error(‘mensagem’) – dentro de uma função ou script, sai da execução da rotina e mostra uma mensagem de erro. return - dentro de uma função ou script, sai da execução da rotina.

Programação e Aplicações Gráficas Exemplos - break % Exemplo 1 u = [2 4 8 4 -1 2]; v = u;a=0; for i = length(v) if u(i) < 0; % check para u negativo break % termina a execução do loop end a = a + v(i)

Programação e Aplicações Gráficas Exemplos - error function c = crossprod(a,b) % Calcula o prod. Escalar de dois vectores if nargin ~= 2 % se não for 2 variáveis de entrada error('São necessárias duas variáveis de entrada') end if length(a) == 3 & length(b) == 3 % começa o cálculo c = cross(a,b); else error('Os vectores devem ter dimensão 3')

Programação e Aplicações Gráficas Exemplos - return x = exp(sqrt(163)) n = input(‘ Escreva o número max de iterações n=') while n >= 1 if n <=0 return end x = log(x) n = n - 1;

Programação e Aplicações Gráficas Outros comandos input(‘mensagem’, opção) – mostra um texto na janela de comandos e espera que o utilizador introduza uma entrada pelo teclado. menu(‘Título’,‘opção1’, ‘opção2’,...) – cria um menu na janela de comandos e efectua as opções do menu. pause – pára a execução da rotina e espera um sinal do utilizador ou efectua uma pausa durante um determinado tempo (“pause(n)”).

Exercício 1 Exercício 2 Exercício 3 Faça um programa que verifica se um número é primo. Exercício 2 Um fornecedor faz o seguinte desconto num determinado produto: mais de 200 unidades 7%; de 100 a 200 uni. 5%; de 50 a 100 uni. 3%; menos de 50 unidades tem desconto. Escreva um programa que calcula o preço total dado o nº. de unidades e o preço unitário. Exercício 3 Altere os programas dos capítulos anteriores de modo que peçam as entradas de modo interactivo.

Programação e Aplicações Gráficas Arquivos de entrada e saída Programação e Aplicações Gráficas Entrada e Saída O MATLAB possui algumas funções para ler e escrever dados em arquivos do tipo binário ou ASCII formatados. As funções são: fopen: abre um arquivo existente ou cria um novo arquivo fclose: fecha um arquivo aberto fwrite: escreve uma informação binário para um arquivo fread: lê informação binário num arquivo fscanf: lê informação formatada num arquivo fprintf: escreve informação formatada num arquivo

Programação e Aplicações Gráficas Formatação de arquivos Formato Descrição %c Simples caracter %d Notação decimal %e Notação exponencial (usando “e” minúsculo ) %E Notação exponencial (usando “e” maiúsculo ) %f Notação fixando ponto %g O mais compactado de %e ou %f %o Notação Octal %s Grupos de caracteres %x Notação Hexadecimal

Exercício 1 Exercício 2 Exercício 3 Construa um programa que escreve num ficheiro de texto uma tabela de conversão entre as unidades de temperatura Fahrenheit, Kelvin e Celsius. Exercício 2 Crie um programa que gera aleatoriamente um conjunto de 100 elementos normalmente distribuídos e os escreva num ficheiro. Exercício 3 Faça um programa que lê o ficheiro da alínea anterior, calcule a média dos dados e apresente um gráfico dos valores lidos.

Programação e Aplicações Gráficas Exemplos – Escrever num arquivo F = -40:5:100; C = (F-32)*5/9; t = [F;C]; fid = fopen('temperatura.tab','w'); fprintf(fid,' Tabela de Temperatura\n'); fprintf(fid,'~~~~~~~~~~~~~~~~~~~~~~~~\n'); fprintf(fid,'Fahrenheit Celsius\n'); fprintf(fid,' %4i %8.2f\n',t); fclose(fid);

Programação e Aplicações Gráficas Exemplos – Ler um arquivo fid = fopen('temperatura.tab'); lixo=fscanf(fid,'%25c',[1 1]) lixo=fscanf(fid,'%20c',[1 1]) temp = fscanf(fid,'%i %f',[2 inf]) fclose(fid);

Programação e Aplicações Gráficas Gráficos Programação e Aplicações Gráficas Gráficos Boas ferramentas de visualização; Gráficos 2D, 3D e animações; Especial sobre a parte gráfica do MATLAB é fácil o uso e expansibilidade.

Programação e Aplicações Gráficas Gráficos 2D O comando básico e talvez o mais proveitoso para produzir um gráfico em 2 dimensões é: plot(xvalores,yvalores,’estilo-opções’)

Programação e Aplicações Gráficas Opções de estilo Cor linha Descrição y (amarelo) - (sólido) + (sinal de soma) m (margenta) -- (tracejado) o (cículo) c (ciano) : (pontinhado) * (asterisco) r (vermelho) -. (tracejado-potinhado) x (sinal x) g (verde) . (ponto) b (azul) ^ (triangulo) w (branco) s (quadrado) k (preto) d (diamante), etc

Programação e Aplicações Gráficas Controle do eixo Pode-se mudar os limites dos eixos com o comando “axis” axis([xmin xmax ymin ymax])

Programação e Aplicações Gráficas Outras opções do comando “axis” axis(‘equal’) – coloca uma escala igual em ambos os eixos axis(‘square’) – transforma a área do gráfico rectângular num quadrado axis(‘normal’) – restaura os eixos para valores padrões axis(‘off’) – remove a área do gráfico e legendas

Programação e Aplicações Gráficas Inserindo textos nos gráficos xlabel(‘eixo x’) – legenda do eixo x ylabel(‘eixo y’) – legenda do eixo y title(‘título’) – título do gráfico text(2,6,‘texto’) – escreve ‘texto’ na coordenada (2,6) legend(‘texto1’, ‘texto2’, ...)

Programação e Aplicações Gráficas Exercício Fazer o gráfico da função seno em conjunto com duas funções de aproximação por série de Taylor (1ª e 3ª ordem). As funções são: y1 = sen(t) y2 = t y3 = t-t3/3!+t5/5! Usando as funções xlabel, ylabel, axis, gtext, hold on, plot...

Programação e Aplicações Gráficas Exercício (solução) x=linspace(0,2*pi,100); y1=sin(x); plot(x,y1) hold on y2=x; plot(x,y2,‘--’) y3=x-(x.^3)/6+(x.^5)/120; plot(x,y3,‘o’) axis([0 5 -1 5]) Hold off

Aula 03 Gráficos especiais em 2D fplot » fplot('x.*sin(x)',[0 10*pi])

Gráficos especiais em 2D semilogx » t=linspace(0,2*pi,200); » x=exp(-t); » y=t; » semilogx(x,y), grid

Gráficos especiais em 2D semilogy » t=linspace(0,2*pi,200); » semilogy(t,exp(t)), grid

Gráficos especiais em 2D loglog » t=linspace(0,2*pi,200); » x=exp(t); » y=100+exp(2*t); » loglog(x,y), grid

Gráficos especiais em 2D polar » t=linspace(0,2*pi,200); » r=sqrt(abs(2*sin(5*t))); » polar(t,r)

Gráficos especiais em 2D fill » t=linspace(0,2*pi,200); » r=sqrt(abs(2*sin(5*t))); » x=r.*cos(t); » y=r.*sin(t); » fill(x,y,'k') » axis(‘equal')

Gráficos especiais em 2D bar » t=linspace(0,2*pi,200); » r=sqrt(abs(2*sin(5*t))); » y=r.*sin(t); » bar(t,y) » axis([0 pi 0 inf])

Gráficos especiais em 2D errorbar » x=0:0.1:2; » aprx2=x-x.^3/6; » er=aprx2-sin(x); » errorbar(x,aprx2,er)

Gráficos especiais em 2D barh » cont=char('Asia','Europa','Africa','America do Norte', 'America do Sul'); » pop=[3332;696;694;437;307]; » barh(pop) » for i=1:5, gtext(cont(i,:)); end » xlabel('Polulação em Milhões') » title('População do Mundo (1992)')

Gráficos especiais em 2D plotyy » x=1:0.1:10; » y1=exp(-x).*sin(x); » y2=exp(x); » Ax=plotyy(x,y1,x,y2) Ax = 72.0021 74.0096 » hy1=get(Ax(1),'ylabel'); » hy2=get(Ax(2),'ylabel'); » set(hy1,'string','e^-x*sin(x)'); » set(hy2,'string','e^x');

Gráficos especiais em 2D area » x=linspace(-3*pi,3*pi,100); » y=-sin(x)./x; » area(x,y) » xlabel('x') » ylabel('sin(x)./x') » hold on » x1=x(46:55); » y1=y(46:55); » area(x1,y1,'facecolor','y')

Gráficos especiais em 2D pie » cont=char('Asia','Europa','Africa','America do Norte', 'America do Sul'); » pop=[3332;696;694;437;307]; » pie(pop) » for i=1:5, gtext(cont(i,:)); end

Gráficos especiais em 2D stairs » t=linspace(0,2*pi,200); » r=sqrt(abs(2*sin(5*t))); » y=r.*sin(t); » stairs(t,y) » axis([0 pi 0 inf])

Gráficos especiais em 2D stem » t=linspace(0,2*pi,100); » f=exp(-0.2*t).*sin(t); » stem(t,f)

Gráficos especiais em 2D compass » zx=cos(th); » zy=sin(th); » z=zx+i*zy; » compass(z)

Gráficos especiais em 2D Comet (faz uma pequena animação) » q=linspace(0,10*pi,200); » y=q.*sin(q); » comet(q,y)

Gráficos especiais em 2D contour » r=-5:0.2:5; » [X,Y]=meshgrid(r,r); » Z=-0.5*X.^2 + X.*Y + Y.^2; » cs=contour(X,Y,Z); » clabel(cs)

Gráficos especiais em 2D quiver » r=-2:0.2:2; » [X,Y]=meshgrid(r,r); » Z=-0.5*X.^2 + X.*Y + Y.^2; » [dx,dy]=gradient(Z,.2,.2); » quiver(X,Y,dx,dy,2);

Gráficos especiais em 2D quiver » r=-2:0.2:2; » [X,Y]=meshgrid(r,r); » Z=-0.5*X.^2 + X.*Y + Y.^2; » pcolor(Z) » axis('off') » shading interp

Programação e Aplicações Gráficas Gráficos Múltiplos Se pretender fazer alguns gráficos e colocá-los lado a lado (sem sobrepor gráficos), use o comando “subplot”: subplot(m,n,p) Dividi a janela em m x n sub-janelas, e desenha o gráfico na sub-janela p.

Programação e Aplicações Gráficas Plots 3D O comando básico para produzir uma curva em 3 dimensões é: plot3(x,y,z,’estilo-opções’) Use agora o comando “zlabel”

Aula 03 Ângulo de visão view(azimute,elavação) – onde o azimute é em graus partir do eixo y sendo o sentido anti-horário o sentido positivo, e a elevação em graus é o ângulo medido a partir do plano x-y. rotate3d on – mais versátil e de fácil uso.

Programação e Aplicações Gráficas Gráfico de superfícies Os comandos básicos para fazer um gráfico de uma superfície são: mesh e surf. Utilize o comando “meshgrid” para gerar uma grelha de pontos quadrangular. mesh(X,Y,Z) surf(X,Y,Z)

Superfícies em 3D mesh e surf >> x=linspace(-3,3,100); >> [X,Y]=meshgrid(x,x); >> Z=X.*Y.*(X.^2-Y.^2)./((X.^2+Y.^2)); >> mesh(X,Y,Z) >> surf(X,Y,Z)

Especiais em 3D fill3 » X=[0 0 0 0;1 1 -1 1;1 -1 -1 1]; » Y=[0 0 0 0; 4 4 4 4; 4 4 4 4]; » Z=[0 0 0 0; 1 1 -1 -1; -1 1 1 -1]; » fill3(X,Y,Z,rand(3,4)) » view(120,30)

Especiais em 3D contour3 » r=linspace(-3,3,50); » [x,y]=meshgrid(r,r); » z=-5./(1+x.^2+y.^2); » contour3(x,y,z)

Especiais em 3D surfc » u=-5:0.2:5; » [X,Y]=meshgrid(u,u); » Z = cos(X).*cos(Y).*exp(-sqrt(X.^2+Y.^2)/4); » surfc(X,Y,Z) » axis('off')

Especiais em 3D surfl » u=-5:0.2:5; » [X,Y]=meshgrid(u,u); » Z = cos(X).*cos(Y).*exp(-sqrt(X.^2+Y.^2)/4); » surfl(X,Y,Z) » shading interp » colormap hot

Especiais em 3D meshz » x=linspace(-3,3,50); » y=x; » [x,y]=meshgrid(x,y); » z=-5./(1+x.^2+y.^2); » meshz(x,y,z)

Especiais em 3D waterfall » x=linspace(-3,3,50); » y=x; » [x,y]=meshgrid(x,y); » z=-5./(1+x.^2+y.^2); » waterfall(x,y,z) » hidden off

Especiais em 3D pie3 » pop=[3332;696;694;437;307]; » pie3(pop) » title('população do mundo')

Especiais em 3D stem3 » t=linspace(0,6*pi,200); » x=t; » y=t.*sin(t); » z=exp(t/10)-1; » stem3(x,y,z)

Especiais em 3D ribbon » t=linspace(0,5*pi,100); » y=sin(t); » ribbon(t,y,0.1)

Especiais em 3D sphere » sphere(20) ou » [x,y,z]=sphere(20); » surf(x,y,z) » axis('equal')

Especiais em 3D cylinder » z=0:0.02:1; » r=sin(3*pi*z)+2; » cylinder(r)

Especiais em 3D slice » v=[-3:0.2:3]; » [x,y,z]=meshgrid(v,v,v); » f=(x.^2+y.^2-z.^2); » xv=[-2 2.5]; » yv=2.5; » zv=0; » slice(x,y,z,f,xv,yv,zv) » view(-30,30) » xlabel('x') » ylabel('y') » zlabel('z') » colorbar(‘horiz’)

Representando gráficamente informações volumétricas As funções disponíveis para visualização de informação volumétrica são: “slice”, “isosurface”, “isonormal”, “isocaps”, “subvolume”, “reducevolume”, “smooth3”, “reducepatch”. Veja helpdesk para mais informações.

[Xi,Yi,Zi]=griddata(x,y,z,xi,yi,‘método) Gráfico de superfícies interpoladora Muitas vezes, nós temos alguma informação em forma (x,y,z) e queremos ajustar uma superfície a essa informação. Para isso usamos o comando “griddata”. [Xi,Yi,Zi]=griddata(x,y,z,xi,yi,‘método)

Gráfico de superfícies interpoladoras » xv=2*rand(1,100)-1; » yv=2*rand(1,100)-1; » zv=3./(1+xv.^2+yv.^2); » stem3(xv,yv,zv)

Gráfico de superfícies interpoladoras » xi=linspace(-1,1,30); » yi=xi; » [xi,yi]=meshgrid(xi,yi); » [Xi,Yi,Zi]=griddata(xv,yv,zv,xi,yi,'v4'); » surf(Xi,Yi,Zi)

Handle Graphics O que é um handle? São números associados a todos os objectos de uma figura. Hierarquia dos objectos gráficos:

Propriedade dos objectos » h=plot(1:20) h = 1.0056 » get(h) Color = [0 0 1] EraseMode = normal LineStyle = - LineWidth = [0.5] Marker = none MarkerSize = [6] MarkerEdgeColor = auto MarkerFaceColor = none XData = [ (1 by 20) double array] YData = [ (1 by 20) double array] ZData = [] ...

Propriedade dos objectos » h=plot(1:20) h = 1.0056 » set(h,'Linewidth',2) %muda a espessura da linha » set(h,'Color',[0 1 1]) %muda a cor da linha

Animação (Fazer um filme) nframes = 36; Frames = moviein(nframes); angulo = linspace(0,360,36); x=linspace(-3,3,100); [X,Y]=meshgrid(x,x); Z=X.*Y.*(X.^2-Y.^2)./((X.^2+Y.^2)); mesh(X,Y,Z) for i=1:nframes view(angulo(i),30) Frames(:,i)=getframe; end movie(Frames,2)

Programação e Aplicações Gráficas Animação (Fazer um filme)