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 detriangles
especifica um triângulo da malhatriangle(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
,... ondekey1
,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("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("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("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("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 — draws a vertical color bar
- 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
Report an issue | ||
<< fchamp | 2d_plot | fec properties >> |