# plot3d2

Esboço de superfície definida por facetas retangulares

## Seqüência de Chamamento

    plot3d2(X,Y,Z [,vect,theta,alpha,leg,flag,ebox])
                plot3d2(X,Y,Z, <opt_args>)

## Parâmetros

X, Y, Z:

  três matrizes de reais definindo uma estrutura de dados.

vect

  vetor de reais.

<opt_args>

  representa uma seqüência de declarações `key1=value1, key2=value2` ,... onde `key1`, `key2,...` podem ser um dos seguintes: theta, alpha ,leg,flag,ebox (ver definições abaixo).

theta, alpha

  valores reais de dados em graus, as coordenadas esféricas do ponto de observação.

leg

  string definindo os rótulos para cada eixo com @ como um separador de campos, por exemplo "X@Y@Z".

flag

  um vetor real de tamanho três. `flag=[mode,type,box]`.

  mode

    um inteiro (cor da superfície).

    mode>0

      a superfície é pintada com a cor `"mode"` ; a borda da faceta é desenhada com os estilos correntes de linha e cor.

    mode=0:

      uma malha da superfície é desenhada.

    mode<0:

      a superfície é pintada com a cor `"-mode"` ; a borda da faceta não é desenhada.

      Note que o tratamento de cor da superfície pode ser feito utilizando-se as opções `color_mode` e `color_flag` através das propriedades da entidade superfície (ver surface_properties).

  type

    um inteiro (tipo de escala).

    type=0:

      o esboço é feito utilizando-se a escala 3d corrente (definida por uma chamada anterior a `param3d`, `plot3d`, `contour` ou `plot3d1`).

    type=1:

      re-escala automaticamente caixas 3d com relação de aspecto extrema, as fronteiras são especificadas pelo valor do argumento opcional `ebox`.

    type=2:

      re-escala automaticamente caixas 3d com relação de aspecto extrema, as fronteiras são computadas utilizando-se dados fornecidos.

    type=3:

      fronteiras 3d isométricas com fronteiras da caixa dadas por `ebox`, de modo semelhante a `type=1`.

    type=4:

      fronteiras 3d isométricas derivadas dos dados, de modo semelhante a `type=2`.

    type=5:

      fronteiras 3d isométricas expandidas com fronteiras fornecidas por `ebox`, de modo semelhante a `type=1`.

    type=6:

      fronteiras 3d isométricas expandidas derivadas dos dados, de modo semelhante a `type=2`.

      Note que as fronteiras dos eixos podem ser customizadas através das propriedades da entidade Axes (ver axes_properties).

  box

    um inteiro (moldura ao redor do esboço)

    box=0:

      nada é desenhado ao redor do esboço.

    box=1:

      não implementado (é como box=0)

    box=2:

      apenas os eixos atrás da superfície são desenhados.

    box=3:

      uma caixa cercando a superfície é desenhada e legendas são adicionadas.

    box=4:

      uma caixa cercando a superfície é desenhada e legendas e eixos são adicionados.

      Note que o aspecto dos eixos pode ser customizado através das propriedades da entidade Axes (ver axes_properties).

ebox

  especifica as fronteiras do esboço através do vetor `[xmin,xmax,ymin,ymax,zmin,zmax]`. Este argumento é utilizado junto com `type` em `flag`, se for ajustado para `1`, `3` ou `5` (volte acima para ver o comportamento correspondente). Se `flag` estiver faltando, `ebox` não é levado em conta.

  Note que, quando especificado, o argumento `ebox` age no campo `data_bounds` que também pode ser ajustado através das propriedades da entidade Axes (ver axes_properties).

## Descrição

`plot3d2` esboça uma superfície definida por facetas retangulares. (X,Y,Z) são três matrizes que descrevem uma superfície. A superfície é composta de polígonos de quatro lados.

As coordenadas x de uma faceta são dadas por X(i,j),X(i+1,j),X(i,j+1),X(i+1,j+1). De modo semelhante Y e Z são coordenadas Y e Z.

O vetor `vect` é usado quando múltiplas superfícies são codificadas nas mesmas matrizes (X,Y,Z). `vect(j)` fornece a linha na qual a codificação da j-ésima superfície começa. Como em `plot3d`, as mesmas propriedades são editáveis (ver surface_properties e axes_properties).

## Exemplos

    u = linspace(-%pi/2,%pi/2,40);
    v = linspace(0,2*%pi,20);
    X = cos(u)'*cos(v);
    Y = cos(u)'*sin(v);
    Z = sin(u)'*ones(v);
    plot3d2(X,Y,Z);
    // apenas no novo modo de gráficos
    e=gce();
    e.color_mode=4; // mudando a cor
    f_data=e.data;
    TL = tlist(["3d" "x" "y" "z" "color"],f_data.x,f_data.y,f_data.z,10*(f_data.z)+1);
    e.data=TL;
    e.color_flag=2;

## Ver Também

- plot3d
- genfac3d