# contour2d

curvas de nível de uma superfície em um esboço 2d

## Seqüência de Chamamento

    contour2d(x,y,z,nz,[style,strf,leg,rect,nax])
                contour2d(x,y,z,nz,<opt_args>)

## Parâmetros

x,y

  vetores de reais de tamanhos n1 e n2: o grid.

z

  matriz de reais de tamanho (n1,n2), os valores da função sobre o grid ou uma função Scilab que define uma superfície `z=f(x,y)`.

nz

  os valores de nível ou o número de níveis.

    Se `nz` for um inteiro, seu valor fornece o número de níveis igualmente espaçados de zmin a zmax como segue:

        z= zmin + (1:nz)*(zmax-zmin)/(nz+1)

    Note que os níveis `zmin` e `zmax` não são desenhados (genericamente eles são reduzidos a pontos) mas podem ser adicionados através de

        [im,jm] = find(z == zmin); // ou zmax
        plot2d(x(im)',y(jm)',-9,"000")

    Se `nz` for um vetor, `nz(i)` fornece o valor da i-ésima curva de nível.

<opt_args>

  representa uma seqüência de declarações `key1=value1,key2=value2`,... onde `key1`, `key2,...` pode ser um dos seguintes: style, leg, rect, nax, strf ou axesflag e frameflag (ver plot2d)

style,strf,leg,rect,nax

  ver plot2d. O argumento `style` fornece os estilos de tracejado ou cores que serão usadas para as curvas de nível. Deve ter o mesmo tamanho que o número de níveis.

## Descrição

`contour2d` desenha curvas de nível de uma superfície `z=f(x,y)` em um esboço 2d. Os valores de `f(x,y)` são dados pela matriz `z` nos pontos de grid definidos por por `x` e `y`.

Você pode modificar o formato dos pontos flutuantes impressos sobre os níveis utilizando `xset("fpf",string)` onde `string` fornece o formato em na sintaxe de formato C (por exemplo `string="%.3f"`). Use `string=""` para voltar ao formato padrão e use `string=" "` para suprimir a impressão. Este último recurso é útil em conjunção com legends para exibir os números de nível em uma legenda e não diretamente em curvas de nível como de uso (ver Exemplos).

Os argumentos opcionais `style,strf,leg,rect,nax`, podem ser passados através de uma seqüência de declarações `key1=value1, key2=value2`, ... onde podem ser `style`,`strf`,`leg`,`rect`,`nax`. Neste caso, a ordem não tem significado especial.

Use `contour` para esboçar curvas de nível em uma superfície 3d.

## Exemplos

    contour2d(1:10,1:10,rand(10,10),5,rect=[0,0,11,11])
    // mudando o formato de impressão dos níveis
    xset("fpf","%.2f")
    clf()
    contour2d(1:10,1:10,rand(10,10),5,rect=[0,0,11,11])

    // agora, um exemplo com números de níveis desenhados em uma legenda
    // Cuidado, há alguns truques aqui...
    x = linspace(0,4*%pi,80);
    z = cos(x')*cos(x);
    clf(); f=gcf();
    xset("fpf"," ")  // truque 1: isto faz com que alguns números de níveis não sejam
                     //          impressos sobre as curvas de nível
    f.color_map=jetcolormap(7);
    // truque 2: para fazer com que se possa colocar a legenda à direita sem
    //          sem interferir com as curvas de nível use rect com um valor xmax
    //          grande o suficiente
    contour2d(x,x,z,-0.75:0.25:0.75,frameflag=3,rect=[0,0,5*%pi,4*%pi])
    // truque 3: use legends (note que a função mais prática legend
    //          não funcionará quando um dos níveis for formado por duas curvas)
    legends(string(-0.75:0.25:0.75),1:7,"lr");
    xtitle("Algumas curvas de nível da função cos(x)cos(y)")

## Ver Também

- contour
- contour2di
- plot2d