# param3d1

esboço 3d de curvas parametrizadas

## Seqüência de Chamamento

    param3d1(x,y,z,[theta,alpha,leg,flag,ebox])
                param3d1(x,y,list(z,colors),[theta,alpha,leg,flag,ebox])

## Parâmetros

x,y,z

  matrizes de mesmo tamanho (nl,nc).

  Cada coluna i das matrizes corresponde às coordenadas da i-ésima curva. Você pode fornecer uma cor específica para cada curva utilizando `list(z,colors)` ao invés de `z`, onde `colors` é um vetor de tamanho `nc`. Se `color(i)` for negativo, a curva é esboçada utilizando-se a marca com identificador `abs(style(i))`; se `style(i)` for estritamente positivo, uma linha simples com idenficador de cor `style(i)` ou uma linha tracejada com identificador de tipo de tracejado `style(i)` é utilizada.

theta,alpha

  valores reais fornecendo em graus as coordenadas esféricas do ponto de observação. Os valores padrões são 35 e 45 graus.

leg

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

flag=[type,box]

  `type` e `box` possuem o mesmo significado que em `plot3d`:

  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. Este é o valor padrão

    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 de eixos (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 também pode ser customizado através das propriedades da entidade Axes (ver axes_properties). Este é o valor padrão.

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 este estiver 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` fque também pode ser ajustado através das propriedades da entidade de eixos (ver axes_properties). O valor padrão de `ebox` é `[0,1,0,1,0,1]`.

## Descrição

`param3d1` usado para esboçar curvas 3d definidas por suas coordenadas `x`, `y` e `z`. Note que os dados também podem ser ajustados ou recebidos através das propriedades da entidade Surface (ver surface_properties).

Note que propriedades como `rotation angles`, `colors` e `thickness` das curvas esboçadas também podem ser ajustadas através das propriedades de param3d (ver param3d_properties).

Entre com o comando `param3d1()` para visualizar uma demonstração.

## Exemplos

    xset('window',20) // criando janela de número 20
    t=[0:0.1:5*%pi]';
    param3d1([sin(t),sin(2*t)],[cos(t),cos(2*t)],..
             list([t/10,sin(t)],[3,2]),35,45,"X@Y@Z",[2,3])

    xdel(20);
    a=get("current_axes");//obtendo manipulador dos novos eixos criados
    t=[0:0.1:5*%pi]';
    param3d1([sin(t),sin(2*t)],[cos(t),cos(2*t)],[t/10,sin(t)])
    a.rotation_angles=[65,75];
    a.data_bounds=[-1,-1,-1;1,1,2]; //limites fornecidos por data_bounds
    a.thickness = 2;
    h=a.children //obtendo o manipulador para a entidade Param3d: um Compound composto de duas curvas
    h.children(1).foreground = 3 // primeira curva
    curve2 = h.children(2);
    curve2.foreground = 6;
    curve2.mark_style = 2;

## Ver Também

- param3d
- plot3d
- plot2d
- gca
- xdel
- delete