Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - 日本語 - Русский
Ajuda do Scilab >> Biblioteca de Gráficos > 2d_plot > fec

fec

Esboço pseudo-colorido triangular de uma função definida por uma malha triangular

Seqüência de Chamamento

fec(x,y,triangles,func,<opt_args>)
fec(x,y,triangles,func,[strf,leg,rect,nax,zminmax,colminmax,colout,mesh])

Parâmetros

x,y

dois vetores de tamanho n, (x(i),y(i)) fornece as coordenadas do nó i

func

vetor de tamanho n : func(i) fornece o valor no nó i da função para a qual queremos o esboço pseudo-colorido.

triangles

é uma matriz [Ntr,5]. Cada linha de triangles especifica um triângulo da malha triangle(j) = [number,node1,node2,node3,flag]. node1,node2,node3 são os números dos nós que constituem o triângulo. number é o número do triângulo e flag é um inteiro que não é usado na função fec

<opt_args>

representa uma seqüência de declarações key1=value1, key2=value2 ,... onde key1, key2,... podem ser um dos seguintes: strf, leg, rect, nax, zminmax, colminmax, colout, mesh (ver plot2d para os quatro primeiros).

strf,leg,rect,nax

ver plot2d

zminmax

vetor com dois compontentes[zmin zmax] (útil para animações em particular)

colminmax

vetor de dois inteiros positivos [colmin colmax]

colout

vetor de dois inteiros [under_min_col upper_max_col]

mesh

escalar booleano, valor padrão %f (deve ser verdadeiro se você também quiser exibir a malha)

Descrição

Esta função é boa para se desenhar soluções de elementos finitos triangulares lineares ou simplesmente para se exibir uma função definida sobre uma triangularização. A interpolação de cores é feita através de um software de computação e, portanto, não é tão rápida.

A função colorbar pode se utilizada para se visualizar a escala de cores (ver a seção de exemplos).

O argumento zminmax fornece os valores de z asosicados às primeira e últimas cores (do mapa de cores corrente). Mais exatamente, se o mapa de cores possue nc cores e se notarmos dz = (zmax-zmin)/nc ,então a parte da triangularização onde zmin + (i-1)dz <= z < zmin + i dz é preenchida com a cor i). Por padrão zmin = min(func) ezmax = max(func). Se você quiser uma animação com valores da função que variam no tempo, tome para zmin e zmax os valores máximo e mínimo globais ou algo próximo.

O argumento colout permite que o usuário escolha as cores para as duas regiões extremas {func < zmin} and {func > zmax}, under_min_col e upper_max_col podem ser iguais (independentemente) a:

-1

neste caso a mesma cor que a zona de vizinhança é utilizada (CUIDADO: você não vê que o limite correspondente é cruzado), este é o caso padrão.

0

neste caso, a região de extremidade não é pintanda.

k

(k sendo um índice de cor válido no mapa de cores corrente) a região de extremidade é pintada com a cor k.

Se você não quiser usar o mapa de cores completo, você pode utilizar o argumento 1 <= colmin < colmax <= nc (nc sendo o número de cores do mapa de cores corrente) para utilizar apenas a sub-parte [colmin,colmax] do mapa de cores. (por padrão, todas as cores do mapa de cores são utilizadas).

Ver arquivos de demonstração demos/fec:

fec.ex1 é um simples arquivo de exemplo no qual uma malha e uma função sobre esta malha é completamente construída em sintaxe do Scilab

fec.ex2 é um exemplo no qual a malha e os valores da função foram computados por um construtor de malhas externo (malha do tipo amdba) e um programa externo. Um conjunto de macros ( fornecido pelo arquivo macros.sci) pode ser utilizado para ler os arquivos de dados no Scilab e esboçar os resultados.

Exemplos

// definindo uma mini-triangularização (4 vértices, 2 triângulos)
x = [0 1 0 -1];
y = [0 0 1  1];
T = [1 1 2 3 1;
     2 3 4 1 1];
z = [0 1 0 -1];  // valores da função em cada vértice
clf()
gcf().color_map = jetcolormap(64);
subplot(1,2,1)
   colorbar(-1,1)
   fec(x,y,T,z,strf="040",mesh=%t)
   xtitle("exemplo de fec (com a malha)")
subplot(1,2,2)
   colorbar(-1,1)
   fec(x,y,T,z,strf="040")  // rmq: mesh=%f por padrão
   xtitle("exemplo de fec (em a malha)")
show_window()

// este exemplo mostra o efeito de zminmax e usa os
// dados de exemplos anteriores (você tem que executá-los primeiro)
clf()
gcf().color_map = jetcolormap(64);
colorbar(-0.5,0.5)  // cuidado, a barra de cores deve ser ajustada na mão!
fec(x,y,T,z,strf="040", zminmax=[-0.5 0.5], mesh=%t)
xtitle("exemplo de fec: utilizando o argumento zminmax")
show_window()

// este exemplo mostra os efeitos de zminmax e colout. Utiliza
// também os dados de exemplos anteriores (você tem que executá-los primeiro)
clf()
gcf().color_map = jetcolormap(64);
subplot(2,2,1)
   colorbar(-0.5,0.5)
   fec(x,y,T,z,strf="040", zminmax=[-0.5 0.5], colout=[0 0], mesh=%t)
   xtitle("exemplo de fec: utilizando zminmax e colout =[0 0]")
subplot(2,2,2)
   colorbar(-0.5,0.5)
   fec(x,y,T,z,strf="040", zminmax=[-0.5 0.5], colout=[32 32], mesh=%t)
   xtitle("exemplo de fec : utilizando zminmax e colout =[32 32]")
subplot(2,2,3)
   colorbar(-0.5,0.5)
   fec(x,y,T,z,strf="040", zminmax=[-0.5 0.5], colout=[-1 0], mesh=%t)
   xtitle("exemplo de fec : utilizando zminmax e colout =[-1 0]")
subplot(2,2,4)
   colorbar(-0.5,0.5)
   fec(x,y,T,z,strf="040", zminmax=[-0.5 0.5], colout=[0 -1], mesh=%t)
   xtitle("exemplo de fec: utilizando zminmax e colout =[0 -1]")
show_window()

// este exemplo mostra um recurso de colminmax:
// utilizando dois mapas de cores para dois subesboços.
// Também utiliza dados de exemplos anteriores.
clf()
gcf().color_map = [hotcolormap(64); jetcolormap(64)];
subplot(1,2,1)
   colorbar(-1,1,[1 64])
   fec(x,y,T,z,strf="040", colminmax=[1 64], mesh=%t)
   xtitle("fec utilizando mapa de cores hot ")
subplot(1,2,2)
   colorbar(-1,1,[65 128])
   fec(x,y,T,z,strf="040", colminmax=[65 128], mesh=%t)
   xtitle("fec utilizando mapa de cores jet ")
show_window()

Ver Também

  • colorbar — Desenha uma barra de cores
  • Sfgrayplot — esboço 2d suave de uma superfície definida por uma função utilizando cores
  • Sgrayplot — esboço 2d suave de uma superfície utilizando cores
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Feb 12 19:58:37 CET 2018