# 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()
    xset("colormap",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()
    xset("colormap",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()
    xset("colormap",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()
    xset("colormap",[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
- Sfgrayplot
- Sgrayplot