@c Language: Brazilian Portuguese, Encoding: iso-8859-1
@c /draw.texi/1.13/Sat Jun  2 00:13:20 2007//
@menu
* Introdu@value{cedilha}@~{a}o a draw::
* Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para draw::
@end menu





@node Introdu@value{cedilha}@~{a}o a draw, Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para draw, draw, draw
@section Introdu@value{cedilha}@~{a}o a draw


@code{draw} @'{e} uma interface entre o Maxima e o Gnuplot.

Existem tr@^{e}s fun@value{cedilha}@~{o}es a serem usadas n n@'{i}vel do Maxima: 
@code{draw2d}, @code{draw3d} e @code{draw}.

Siga o link abaixo para exemplos mais elaborados deste pacote:
 
@url{http://es.geocities.com/riotorto/maxima/gpdraw}
 
Voce precisar@'{a} do Gnuplot 4.2 para executar este programa.






@node Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para draw,  , Introdu@value{cedilha}@~{a}o a draw, draw
@section Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para draw




@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} xrange
Valor padr@~{a}o: @code{false}

Se @code{xrange} for @code{false}, o intevalo para a coordenada @var{x} @'{e}
calculado automaticamente.

Caso o usu@'{a}rio deseje um intervalo espec@'{i}fico para @var{x}, esse intervalo deve ser fornecido como uma 
lista da forma definida pelo Maxima, como em @code{xrange=[-2, 3]}.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(xrange = [-3,5],
             explicit(x^2,x,-1,1))$
@end example

Veja tamb@'{e}m @code{yrange} e @code{zrange}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} yrange
Valor padr@~{a}o: @code{false}

Se @code{yrange} for @code{false}, the range for the @var{y} coordinate is
computed automatically.

Se o usu@'{a}rio sesejar um intervalo espec@'{i}fico para @var{y}, esse intervalo deve ser fornecido como uma 
lista da forma definida pelo Maxima, como em @code{yrange=[-2, 3]}.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(yrange = [-2,3],
             explicit(x^2,x,-1,1),
             xrange = [-3,3])$
@end example

Veja tamb@'{e}m @code{xrange} e @code{zrange}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} zrange
Valor padr@~{a}o: @code{false}

Se @code{zrange} for @code{false}, o intervalo para a coordenada @var{z} @'{e}
calculado automaticamente.

Se o usu@'{a}rio sesejar um intervalo espec@'{i}fico para @var{z}, esse intervalo deve ser fornecido como uma 
lista da forma definida pelo Maxima, como em @code{zrange=[-2, 3]}.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw3d(yrange = [-3,3],
             zrange = [-2,5],
             explicit(x^2+y^2,x,-1,1,y,-1,1),
             xrange = [-3,3])$
@end example

Veja tamb@'{e}m @code{yrange} e @code{zrange}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} logx
Valor padr@~{a}o: @code{false}

Se @code{logx} for @code{true}, o eixo @var{x}ser@'{a} desenhado em
escala logar@'{i}tmica.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(explicit(log(x),x,0.01,5),
             logx = true)$
@end example

Veja tamb@'{e}m @code{logy} e @code{logz}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} logy
Valor padr@~{a}o: @code{false}

Se @code{logy} for @code{true}, o eixo @var{y}ser@'{a} desenhado em
escala logar@'{i}tmica.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(logy = true,
             explicit(exp(x),x,0,5))$
@end example

Veja tamb@'{e}m @code{logx} e @code{logz}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} logz
Valor padr@~{a}o: @code{false}

Se @code{logz} for @code{true}, o eixo @var{z}ser@'{a} desenhado em
escala logar@'{i}tmica.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw3d(logz = true,
             explicit(exp(u^2+v^2),u,-2,2,v,-2,2))$
@end example

Veja tamb@'{e}m @code{logx} e @code{logy}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} terminal
Valor padr@~{a}o: @code{screen}

Seleciona o terminal a ser usado pelo Gnuplot; os valores poss@'{i}veis s@~{a}o:
@code{screen} (o valor padr@~{a}o), @code{png}, @code{jpg}, @code{eps}, e @code{eps_color}.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante. Pode tamb@'{e}m ser usada como um argumento da fun@value{cedilha}@~{a}o @code{draw}

Exemplos:

@example
(%i1) load(draw)$
(%i2) /* screen terminal (default) */
      draw2d(explicit(x^2,x,-1,1))$
(%i3) /* png file */
      draw2d(terminal  = 'png,
             pic_width = 300,
             explicit(x^2,x,-1,1))$
(%i4) /* jpg file */
      draw2d(terminal   = 'jpg,
             pic_width  = 300,
             pic_height = 300,
             explicit(x^2,x,-1,1))$
(%i5) /* eps file */
      draw2d(file_name = "myfile",
             explicit(x^2,x,-1,1),
             terminal  = 'eps)$
@end example

Veja tamb@'{e}m @code{file_name}, @code{pic_width}, e @code{pic_height}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} grid
Valor padr@~{a}o: @code{false}

Se @code{grid} for @code{true}, uma malha ser@'{a} desenhada sobre o plano @var{xy}.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(grid = true,
             explicit(exp(u),u,-2,2))$
@end example
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} title
Valor padr@~{a}o: @code{""} (a seq@"{u}@^{e}ncia de caracteres vazia)

A op@value{cedilha}@~ao @code{title} armazena uma seq@"{u}@^{e}ncia de caracteres do Maxima com o t@'{i}tulo principal de um fundo gr@'{a}fico.
Por padr@~{a}o, nenhum t@'{i}tulo @'{e} escrito.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(explicit(exp(u),u,-2,2),
             title = "Exponential function")$
@end example
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} xlabel
Valor padr@~{a}o: @code{""} (a seq@"{u}@^{e}ncia de caracteres vazia)

A op@value{cedilha}@~ao @code{xlabel} armazena uma seq@"{u}@^{e}ncia de caracteres do Maxima com o r@'{o}tulo para o eixo @var{x}.
Por padr@~{a}o, nenhum r@'{o}tulo @'{e} escrito.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(xlabel = "Time",
             explicit(exp(u),u,-2,2),
             ylabel = "Population")$
@end example

Veja tamb@'{e}m @code{ylabel}, e @code{zlabel}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} ylabel
Valor padr@~{a}o: @code{""} (a seq@"{u}@^{e}ncia de caracteres vazia)

A op@value{cedilha}@~ao @code{ylabel} armazena uma seq@"{u}@^{e}ncia de caracteres do Maxima com o r@'{o}tulo para o eixo @var{y}.
Por padr@~{a}o, nenhum r@'{o}tulo @'{e} escrito.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(xlabel = "Time",
             ylabel = "Population",
             explicit(exp(u),u,-2,2) )$
@end example

Veja tamb@'{e}m @code{xlabel}, e @code{zlabel}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} zlabel
Valor padr@~{a}o: @code{""} (a seq@"{u}@^{e}ncia de caracteres vazia)

A op@value{cedilha}@~ao @code{zlabel} armazena uma seq@"{u}@^{e}ncia de caracteres do Maxima com o r@'{o}tulo para o eixo @var{z}.
Por padr@~{a}o, nenhum r@'{o}tulo @'{e} escrito.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw3d(zlabel = "Z variable",
             ylabel = "Y variable",
             explicit(sin(x^2+y^2),x,-2,2,y,-2,2),
             xlabel = "X variable" )$
@end example

Veja tamb@'{e}m @code{xlabel}, e @code{ylabel}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} xtics
Valor padr@~{a}o: @code{true}

Se @code{xtics} for @code{true}, a marca@value{cedilha}@~{a}o num@'{e}rica ser@'{a} feitas sobre o eixo @var{x}.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) /* No tics in the x-axis */
      draw2d(xtics = false,
             explicit(exp(u),u,-2,2))$
@end example

Veja tamb@'{e}m @code{ytics}, e @code{ztics}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} ytics
Valor padr@~{a}o: @code{true}

Se @code{ytics} for @code{true}, a marca@value{cedilha}@~{a}o num@'{e}rica ser@'{a} feitas sobre o eixo @var{y}.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(ytics = false,
             explicit(exp(u),u,-2,2),
             xtics = false)$
@end example

Veja tamb@'{e}m @code{xtics}, e @code{ztics}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} ztics
Valor padr@~{a}o: @code{true}

Se @code{ztics} for @code{true}, a marca@value{cedilha}@~{a}o num@'{e}rica ser@'{a} feitas sobre o eixo @var{z}.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) /* No tics in the z-axis */
      draw3d(ztics = false,
             explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
@end example

Veja tamb@'{e}m @code{xtics}, e @code{ytics}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} rot_vertical
Valor padr@~{a}o: 60

@code{rot_vertical} @'{e} o @^{a}ngulo (em graus) da rota@value{cedilha}@~{a}o vertical (em torno 
do eixo @var{x}) para escolher o ponto de visualiza@value{cedilha}@~{a}o em fundos gr@'{a}ficos tridimensionais.

O @^{a}ngulo @'{e} associado ao intervalo @math{[0, 180]}.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw3d(rot_vertical = 170,
             explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
@end example

Veja tamb@'{e}m @code{rot_horizontal}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} rot_horizontal
Valor padr@~{a}o: 30

@code{rot_horizontal} @'{e} o @^{a}ngulo (em graus) da rota@value{cedilha}@~{a}o horizontal (em torno 
do eixo @var{z})  para escolher o ponto de visualiza@value{cedilha}@~{a}o em fundos gr@'{a}ficos tridimensionais.

O @^{a}ngulo @'{e} associado ao intervalo @math{[0, 180]}.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw3d(rot_vertical = 170,
             rot_horizontal = 360,
             explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
@end example

Veja tamb@'{e}m @code{rot_vertical}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} xy_file
Valor padr@~{a}o: @code{""} (a seq@"{u}@^{e}ncia de caracteres vazia)

@code{xy_file} @'{e} o nome do arquivo onde as coordenada ser@~{a}o armazenadas
ap@'{o}s um clique com o bot@~{a}o do mouse e pressionar a tecla 'x'. Por padr@~{a}o,
nenhuma coordenada @'{e} armazenada.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} user_preamble
Valor padr@~{a}o: @code{""} (a seq@"{u}@^{e}ncia de caracteres vazia)

Usu@'{a}rios experientes de Gnuplot podem fazer uso dessa op@value{cedilha}@~{a}o para ajuste fino do comportamento
do Gnuplot escolhendo op@value{cedilha}@~{o}es para serem enviadas antes do comando @code{plot} ou do
comando @code{splot}.

O valor dessa op@value{cedilha}@~{a}o deve ser uma seq@"u@^encia de caracteres ou uma lista de seq@"u@^encia de caracteres (um por linha).

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

O terminal @i{dumb} n@~{a}o @'{e} suportado pelo pacote @code{draw},
mas @'{e} poss@'{i}vel escolher o terminal @i{dumb} fazendo uso da op@value{cedilha}@~{a}o @code{user_preamble},
@example
(%i1) load(draw)$
(%i2) draw2d(explicit(exp(x)-1,x,-1,1),
             parametric(cos(u),sin(u),u,0,2*%pi),
             user_preamble="set terminal dumb")$
@end example
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} file_name
Valor padr@~{a}o: @code{"maxima_out"}

Esse @'{e} o nome do arquivo onde os terminais @code{png}, @code{jpg}, @code{eps}
e @code{eps_color} guardar@~{a}o o gr@'{a}fico.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante. Pode tamb@'{e}m ser usada como um argumento da fun@value{cedilha}@~{a}o @code{draw}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(file_name = "myfile",
             explicit(x^2,x,-1,1),
             terminal  = 'png)$
@end example

Veja tamb@'{e}m @code{terminal}, @code{pic_width}, e @code{pic_height}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} pic_width
Valor padr@~{a}o: 640

Essa @'{e} a largura do arquivo de bitmap gerado pelos terminais @code{png} e @code{jpg}.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante. Pode tamb@'{e}m ser usada como um argumento da fun@value{cedilha}@~{a}o @code{draw}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(terminal   = 'png,
             pic_width  = 300,
             pic_height = 300,
             explicit(x^2,x,-1,1))$
@end example

Veja tamb@'{e}m @code{terminal}, @code{file_name}, e @code{pic_height}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} pic_height
Valor padr@~{a}o: 640

Essa @'{e} a altura do arquivo de bitmap gerado pelos terminais @code{png} e @code{jpg}.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante. Pode tamb@'{e}m ser usada como um argumento da fun@value{cedilha}@~{a}o @code{draw}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(terminal   = 'png,
             pic_width  = 300,
             pic_height = 300,
             explicit(x^2,x,-1,1))$
@end example

Veja tamb@'{e}m @code{terminal}, @code{file_name}, e @code{pic_width}.
@end defvr


@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} eps_width
Valor padr@~{a}o: 12

Essa @'{e} a largura (medida em cm) do arquivo Postscript
gerado pelos terminais @code{eps} e @code{eps_color}.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo gr@'{a}fico
n@~{a}o @'{e} importante. Pode tamb@'{e}m ser usada como um argumento da fun@value{cedilha}@~{a}o @code{draw}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(terminal   = 'eps,
             eps_width  = 3,
             eps_height = 3,
             explicit(x^2,x,-1,1))$
@end example

Veja tamb@'{e}m @code{terminal}, @code{file_name}, e @code{eps_height}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} eps_height
Valor padr@~{a}o: 8

Essa @'{e} a altura (medida em cm) do arquivo Postscript
gerado pelos terminais @code{eps} e @code{eps_color}.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo gr@'{a}fico
n@~{a}o @'{e} importante. Pode tamb@'{e}m ser usada como um argumento da fun@value{cedilha}@~{a}o @code{draw}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(terminal   = 'eps,
             eps_width  = 3,
             eps_height = 3,
             explicit(x^2,x,-1,1))$
@end example

Veja tamb@'{e}m @code{terminal}, @code{file_name}, e @code{eps_width}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} axis_bottom
Valor padr@~{a}o: @code{true}

Se @code{axis_bottom} for @code{true}, o eixo inferior @'{e} mostrado em fundos gr@'{a}ficos bidimensionais.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(axis_bottom = false,
             explicit(x^3,x,-1,1))$
@end example

Veja tamb@'{e}m @code{axis_left},  @code{axis_top}, @code{axis_right}, e @code{axis_3d}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} axis_left
Valor padr@~{a}o: @code{true}

Se @code{axis_left} for @code{true}, o eixo da esquerda @'{e} mostrado em fundos gr@'{a}ficos bidimensionais.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(axis_left = false,
             explicit(x^3,x,-1,1))$
@end example

Veja tamb@'{e}m @code{axis_bottom},  @code{axis_top}, @code{axis_right}, e @code{axis_3d}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} axis_top
Valor padr@~{a}o: @code{true}

Se @code{axis_top} for @code{true}, o eixo superior @'{e} mostrado em fundos gr@'{a}ficos bidimensionais.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(axis_top = false,
             explicit(x^3,x,-1,1))$
@end example

Veja tamb@'{e}m @code{axis_bottom},  @code{axis_left}, @code{axis_right}, e @code{axis_3d}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} axis_right
Valor padr@~{a}o: @code{true}

Se @code{axis_right} for @code{true}, o eixo da direita @'{e} mostrado em fundos gr@'{a}ficos bidimensionais.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(axis_right = false,
             explicit(x^3,x,-1,1))$
@end example

Veja tamb@'{e}m @code{axis_bottom},  @code{axis_left}, @code{axis_top}, e @code{axis_3d}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} axis_3d
Valor padr@~{a}o: @code{true}

Se @code{axis_3d} for @code{true}, os eixos @var{x}, @var{y} e @var{z} s@~{a}o mostrados em fundos gr@'{a}ficos tridimensionais.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw3d(axis_3d = false,
             explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
@end example

Veja tamb@'{e}m @code{axis_bottom},  @code{axis_left}, @code{axis_top}, e @code{axis_right} para eixos em duas dimens@~{o}es.
@end defvr




@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} palette
Valor padr@~{a}o: @code{color}

@code{palette} indica como mapear os valores reais de uma matriz
passada para o objeto @code{image} sobre componentes de cor.

@code{palette} @'{e} um vetor comprimento tr@^{e}s com componentes 
variando de -36 a +36; cada valor @'{e} um @'{i}ndice para uma f@'{o}rmula mapeando os n@'{i}veis
sobre as cores vermelho, verde e blue, respectivamente:
@example
 0: 0               1: 0.5           2: 1
 3: x               4: x^2           5: x^3
 6: x^4             7: sqrt(x)       8: sqrt(sqrt(x))
 9: sin(90x)       10: cos(90x)     11: |x-0.5|
12: (2x-1)^2       13: sin(180x)    14: |cos(180x)|
15: sin(360x)      16: cos(360x)    17: |sin(360x)|
18: |cos(360x)|    19: |sin(720x)|  20: |cos(720x)|
21: 3x             22: 3x-1         23: 3x-2
24: |3x-1|         25: |3x-2|       26: (3x-1)/2
27: (3x-2)/2       28: |(3x-1)/2|   29: |(3x-2)/2|
30: x/0.32-0.78125 31: 2*x-0.84     32: 4x;1;-2x+1.84;x/0.08-11.5
33: |2*x - 0.5|    34: 2*x          35: 2*x - 0.5
36: 2*x - 1
@end example
n@'{u}meros negativos significam componentes negativos de cores.

@code{palette = gray} and @code{palette = color} are short cuts for
@code{palette = [3,3,3]} and @code{palette = [7,5,15]}, respectively.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo do gr@'{a}fico
n@~{a}o @'{e} importante.

Exemplos:

@example
(%i1) load(draw)$
(%i2) im: apply(
           'matrix,
            makelist(makelist(random(200),i,1,30),i,1,30))$
(%i3) /* palette = color, default */
      draw2d(image(im,0,0,30,30))$
(%i4) draw2d(palette = gray, image(im,0,0,30,30))$
(%i5) draw2d(palette = [15,20,-4],
             colorbox=false,
             image(im,0,0,30,30))$
@end example

Veja tamb@'{e}m @code{colorbox}. 
@end defvr




@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} colorbox
Valor padr@~{a}o: @code{true}

If @code{colorbox} is @code{true}, a color scale is drawn together with
@code{image} objects.

Since this is a global graphics option, its position in the scene description
does not matter.

Exemplo:

@example
(%i1) load(draw)$
(%i2) im: apply('matrix,
                 makelist(makelist(random(200),i,1,30),i,1,30))$
(%i3) draw2d(image(im,0,0,30,30))$
(%i4) draw2d(colorbox=false, image(im,0,0,30,30))$
@end example

Veja tamb@'{e}m @code{palette}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} enhanced3d
Valor padr@~{a}o: @code{false}

Se @code{enhanced3d} for @code{true}, superf@'{i}cies s@~{a}o coloridas em gr@'{a}ficos tridimensionais;
em outras palavras, pode escolher o modo pm3d do Gnuplot.

Veja a op@value{cedilha}@~{a}o @code{palette} para aprender como paletas s@~{a}o especificadas.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw3d(surface_hide = true,
             enhanced3d   = true,
             palette      = gray,
             explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$
@end example
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} point_size
Valor padr@~{a}o: 1

@code{point_size} escolhe o tamanho para os pontos do gr@'afico. Esse valor deve ser um
n@'{u}mero n@~{a}o negativo.

Essa op@value{cedilha}@~{a}o afeta os seguintes objetos gr@'{a}ficos:
@itemize @bullet
@item
@code{gr2d}: @code{points}.

@item
@code{gr3d}: @code{points}.
@end itemize

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(points(makelist([random(20),random(50)],k,1,10)),
             point_size = 5,
             points(makelist(k,k,1,20),makelist(random(30),k,1,20)))$
@end example
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} point_type
Valor padr@~{a}o: 1

@code{point_type} indica como pontos isolados s@~{a}o mostrados; o valor dessa
op@value{cedilha}@~{a}o pode ser qualquer @'{i}ndice inteiro maior que ou igual a -1, ou o nome de
um estilo de ponto: @code{$none} (-1), @code{dot} (0), @code{plus} (1), @code{multiply} (2),
@code{asterisk} (3), @code{square} (4), @code{filled_square} (5), @code{circle} (6),
@code{filled_circle} (7), @code{up_triangle} (8), @code{filled_up_triangle} (9),
@code{down_triangle} (10), @code{filled_down_triangle} (11), @code{diamant} (12) e
@code{filled_diamant} (13).

Essa op@value{cedilha}@~{a}o afeta os seguintes objetos gr@'{a}ficos:
@itemize @bullet
@item
@code{gr2d}: @code{points}.

@item
@code{gr3d}: @code{points}.
@end itemize

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(xrange = [0,10],
             yrange = [0,10],
             point_size = 3,
             point_type = 1,
             points([[1,1],[5,1],[9,1]]),
             point_type = 2,
             points([[1,2],[5,2],[9,2]]),
             point_type = asterisk,
             points([[1,3],[5,3],[9,3]]),
             point_type = 4,
             points([[1,4],[5,4],[9,4]]),
             point_type = 5,
             points([[1,5],[5,5],[9,5]]),
             point_type = 6,
             points([[1,6],[5,6],[9,6]]),
             point_type = filled_circle,
             points([[1,7],[5,7],[9,7]]),
             point_type = 8,
             points([[1,8],[5,8],[9,8]]),
             point_type = filled_diamant,
             points([[1,9],[5,9],[9,9]]) )$
@end example
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} points_joined
Valor padr@~{a}o: @code{false}

Se @code{points_joined} for @code{true}, pontos s@~{a}o unidos por linhas retas.

Essa op@value{cedilha}@~{a}o afeta os seguintes objetos gr@'{a}ficos:
@itemize @bullet
@item
@code{gr2d}: @code{points}.

@item
@code{gr3d}: @code{points}.
@end itemize

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(xrange        = [0,10],
             yrange        = [0,4],
             point_size    = 3,
             point_type    = 1,
             line_type     = 3,
             points([[1,1],[5,1],[9,1]]),
             points_joined = true,
             point_type    = 3,
             line_type     = 5,
             points([[1,2],[5,2],[9,2]]),
             point_type    = 5,
             line_type     = 8,
             line_width    = 7,
             points([[1,3],[5,3],[9,3]]) )$
@end example
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} filled_func
Valor padr@~{a}o: @code{false}

@code{filled_func} indica se uma fun@value{cedilha}@~{a}o @'{e} preenchida (@code{true})
ou n@~{a}o (@code{false}).

Essa op@value{cedilha}@~{a}o afeta somente objetos gr@'{a}fico bidimensional @code{explicit}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(fill_color  = red,
             filled_func = true,
             explicit(sin(x),x,0,10) )$
@end example

Veja tamb@'{e}m @code{fill_color}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} transparent
Valor padr@~{a}o: @code{false}

Se @code{transparent} for @code{true}, regi@~{o}es internas de poligonos s@~{a}o
preenchidas de acordo com @code{fill_color}.

Essa op@value{cedilha}@~{a}o afeta os seguintes objetos gr@'{a}ficos:
@itemize @bullet
@item
@code{gr2d}: @code{polygon}, @code{rectangle}, e @code{ellipse}.
@end itemize

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(polygon([[3,2],[7,2],[5,5]]),
             transparent = true,
             color       = blue,
             polygon([[5,2],[9,2],[7,5]]) )$
@end example
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} border
Valor padr@~{a}o: @code{true}

Se @code{border} for @code{true}, bordas de pol@'{i}gonos s@~{a}o colorizadas
de acordo com @code{line_type} e @code{line_width}.

Essa op@value{cedilha}@~{a}o afeta os seguintes objetos gr@'{a}ficos:
@itemize @bullet
@item
@code{gr2d}: @code{polygon}, @code{rectangle}, e @code{ellipse}.
@end itemize

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(color       = brown,
             line_width  = 8,
             polygon([[3,2],[7,2],[5,5]]),
             border      = false,
             fill_color  = blue,
             polygon([[5,2],[9,2],[7,5]]) )$
@end example
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} head_both
Valor padr@~{a}o: @code{false}

Se @code{head_both} for @code{true}, vetores s@~{a}o mostrados com seta dupla na ponta.
Se @code{false}, somente uma seta @'{e} mostrada.

Essa op@value{cedilha}@~{a}o somente @'{e} relevante para objetos do tipo @code{vector}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(xrange      = [0,8],
             yrange      = [0,8],
             head_length = 0.7,
             vector([1,1],[6,0]),
             head_both   = true,
             vector([1,7],[6,0]) )$
@end example

Veja tamb@'{e}m @code{head_length}, @code{head_angle}, e @code{head_type}. 
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} head_length
Valor padr@~{a}o: 2

@code{head_length} indica, em unidades do eixo @var{x}, o comprimento da ponta da seta do vetor.

Essa op@value{cedilha}@~{a}o @'{e} relevante somente para objetos do tipo @code{vector}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(xrange      = [0,12],
             yrange      = [0,8],
             vector([0,1],[5,5]),
             head_length = 1,
             vector([2,1],[5,5]),
             head_length = 0.5,
             vector([4,1],[5,5]),
             head_length = 0.25,
             vector([6,1],[5,5]))$
@end example

Veja tamb@'{e}m @code{head_both}, @code{head_angle}, e @code{head_type}. 
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} head_angle
Valor padr@~{a}o: 45

@code{head_angle} indica o @^{a}ngulo, em graus, entre a ponta da seta do vetor e
o segmento que forma o corpo do vetor.

Essa op@value{cedilha}@~{a}o @'{e} relevante somente para objetos do tipo @code{vector}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(xrange      = [0,10],
             yrange      = [0,9],
             head_length = 0.7,
             head_angle  = 10,
             vector([1,1],[0,6]),
             head_angle  = 20,
             vector([2,1],[0,6]),
             head_angle  = 30,
             vector([3,1],[0,6]),
             head_angle  = 40,
             vector([4,1],[0,6]),
             head_angle  = 60,
             vector([5,1],[0,6]),
             head_angle  = 90,
             vector([6,1],[0,6]),
             head_angle  = 120,
             vector([7,1],[0,6]),
             head_angle  = 160,
             vector([8,1],[0,6]),
             head_angle  = 180,
             vector([9,1],[0,6]) )$
@end example

Veja tamb@'{e}m @code{head_both}, @code{head_length}, e @code{head_type}. 
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} head_type
Valor padr@~{a}o: @code{filled}

@code{head_type} @'{e} usada para especificar como a ponta @'{e} mostrada. Valores
poss@'{i}veis s@~{a}o: @code{filled} (ponta fechada e preenchida), @code{empty}
(ponta fechada mas n@~{a}o preenchida), e @code{nofilled} (ponta aberta).

Essa op@value{cedilha}@~{a}o @'{e} relevante somente para objetos do tipo @code{vector}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(xrange      = [0,12],
             yrange      = [0,10],
             head_length = 1,
             vector([0,1],[5,5]), /* default type */
             head_type = 'empty,
             vector([3,1],[5,5]),
             head_type = 'nofilled,
             vector([6,1],[5,5]))$
@end example

Veja tamb@'{e}m @code{head_both}, @code{head_angle}, e @code{head_length}. 
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} label_alignment
Valor padr@~{a}o: @code{center}

@code{label_alignment} @'{e} usado para especificar onde escrever r@'{o}tulos com
rela@value{cedilha}@~{a}o @`as coordenadas fornecidas. Valores poss@'{i}veis s@~{a}o: @code{center},
@code{left}, e @code{right}.

Essa op@value{cedilha}@~{a}o @'{e} relevante somente para objetos do tipo @code{label}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(xrange          = [0,10],
             yrange          = [0,10],
             points_joined   = true,
             points([[5,0],[5,10]]),
             color           = blue,
             label("Centered alignment (default)",5,2),
             label_alignment = 'left,
             label("Left alignment",5,5),
             label_alignment = 'right,
             label("Right alignment",5,8))$
@end example

Veja tamb@'{e}m @code{label_orientation}, e @code{color}. 
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} label_orientation
Valor padr@~{a}o: @code{horizontal}

@code{label_orientation} @'{e} usada para especificar a orienta@value{cedilha}@~{a}o dos r@'{o}tulos.
Valores poss@'{i}veis s@~{a}o: @code{horizontal}, e @code{vertical}.

Essa op@value{cedilha}@~{a}o @'{e} relevante somente para objetos do tipo @code{label}.

Exemplo:

Nesse exemplo, um ponto fict@'{i}cio @'{e} adicionado para firmar uma imagem.
o pacote @code{draw} precisa sempre de dados para montar um fundo.
@example
(%i1) load(draw)$
(%i2) draw2d(xrange     = [0,10],
             yrange     = [0,10],
             point_size = 0,
             points([[5,5]]),
             color      = navy,
             label("Horizontal orientation (default)",5,2),
             label_orientation = 'vertical,
             color             = "#654321",
             label("Vertical orientation",1,5))$
@end example

Veja tamb@'{e}m @code{label_alignment}, e @code{color}. 
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} color
Valor padr@~{a}o: @code{"black"}

@code{color} especifica a cor para o desenho de linhas, pontos, bordas de
pol@'{i}gonos e r@'{o}tulos.

Cores podem ser fornecidas como nomes ou em c@'{o}digo hexadecimal @i{rgb}.

Nomes de cores dispon@'{i}veis atualmente s@~{a}o: 
@code{"white"}, @code{"black"}, @code{"gray0"}, @code{"grey0"}, @code{"gray10"},
@code{"grey10"}, @code{"gray20"}, @code{"grey20"}, @code{"gray30"}, @code{"grey30"},
@code{"gray40"}, @code{"grey40"}, @code{"gray50"}, @code{"grey50"}, @code{"gray60"},
@code{"grey60"}, @code{"gray70"}, @code{"grey70"}, @code{"gray80"}, @code{"grey80"},
@code{"gray90"}, @code{"grey90"}, @code{"gray100"}, @code{"grey100"}, @code{"gray"},
@code{"grey"}, @code{"light-gray"}, @code{"light-grey"}, @code{"dark-gray"},
@code{"dark-grey"}, @code{"red"}, @code{"light-red"}, @code{"dark-red"}, @code{"yellow"},
@code{"light-yellow"}, @code{"dark-yellow"}, @code{"green"}, @code{"light-green"},
@code{"dark-green"}, @code{"spring-green"}, @code{"forest-green"}, @code{"sea-green"},
@code{"blue"}, @code{"light-blue"}, @code{"dark-blue"}, @code{"midnight-blue"}, 
@code{"navy"}, @code{"medium-blue"}, @code{"royalblue"}, @code{"skyblue"}, 
@code{"cyan"}, @code{"light-cyan"}, @code{"dark-cyan"}, @code{"magenta"}, 
@code{"light-magenta"}, @code{"dark-magenta"}, @code{"turquoise"}, 
@code{"light-turquoise"}, @code{"dark-turquoise"}, @code{"pink"}, @code{"light-pink"},
@code{"dark-pink"}, @code{"coral"}, @code{"light-coral"}, @code{"orange-red"},
@code{"salmon"}, @code{"light-salmon"}, @code{"dark-salmon"}, @code{"aquamarine"},
@code{"khaki"}, @code{"dark-khaki"}, @code{"goldenrod"}, @code{"light-goldenrod"},
@code{"dark-goldenrod"}, @code{"gold"}, @code{"beige"}, @code{"brown"}, @code{"orange"},
@code{"dark-orange"}, @code{"violet"}, @code{"dark-violet"}, @code{"plum"} and @code{"purple"}.

Componentes crom@'{a}ticos em c@'{o}digo hexadecimal s@~{a}o introduzidos na forma @code{"#rrggbb"}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(explicit(x^2,x,-1,1), /* default is black */
             color = "red",
             explicit(0.5 + x^2,x,-1,1),
             color = blue,
             explicit(1 + x^2,x,-1,1),
             color = "light-blue", /* double quotes if - is used */
             explicit(1.5 + x^2,x,-1,1),
             color = "#23ab0f",
             label("Esse @'{e} um r@'{o}tulo",0,1.2)  )$
@end example

Veja tamb@'{e}m @code{fill_color}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} fill_color
Valor padr@~{a}o: @code{"red"}

@code{fill_color} especifica a cor para preenchimento de pol@'{i}gonos e
fun@value{cedilha}@~{o}es explicitamente bidimensionais.

Veja @code{color} para aprender como cores s@~{a}o especificadas.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} line_width
Valor padr@~{a}o: 1

@code{line_width} @'{e} a lagura das linhas do gr@'{a}fico.
Seu valor deve ser um n@'{u}mero positivo.

Essa op@value{cedilha}@~{a}o afeta os seguintes objetos gr@'{a}ficos:
@itemize @bullet
@item
@code{gr2d}: @code{points}, @code{polygon}, @code{rectangle}, 
@code{ellipse}, @code{vector}, @code{explicit}, @code{implicit}, 
@code{parametric} e @code{polar}.

@item
@code{gr3d}: @code{points} e @code{parametric}.
@end itemize

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(explicit(x^2,x,-1,1), /* default width */
             line_width = 5.5,
             explicit(1 + x^2,x,-1,1),
             line_width = 10,
             explicit(2 + x^2,x,-1,1))$
@end example

Veja tamb@'{e}m @code{line_type}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} line_type
Valor padr@~{a}o: @code{solid}

@code{line_type} indica como linhas s@~{a}o mostradas; valores poss@'{i}veis s@~{a}o
@code{solid} e @code{dots}.

Essa op@value{cedilha}@~{a}o afeta os seguintes objetos gr@'{a}ficos:
@itemize @bullet
@item
@code{gr2d}: @code{points}, @code{polygon}, @code{rectangle}, 
@code{ellipse}, @code{vector}, @code{explicit}, @code{implicit}, 
@code{parametric} e @code{polar}.

@item
@code{gr3d}: @code{points}, @code{explicit}, @code{parametric} e @code{parametric_surface}.
@end itemize

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(line_type = dots,
             explicit(1 + x^2,x,-1,1),
             line_type = solid, /* default */
             explicit(2 + x^2,x,-1,1))$
@end example

Veja tamb@'{e}m @code{line_width}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} nticks
Valor padr@~{a}o: 30

@code{nticks} @'{e} o n@'{u}mero de amostra de pontos usado pelas rotinas de montagem de gr@'{a}fico.

Essa op@value{cedilha}@~{a}o afeta os seguintes objetos gr@'{a}ficos:
@itemize @bullet
@item
@code{gr2d}: @code{ellipse}, @code{explicit}, @code{parametric} e @code{polar}.

@item
@code{gr3d}: @code{parametric}.
@end itemize

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(transparent = true,
             ellipse(0,0,4,2,0,180),
             nticks = 5,
             ellipse(0,0,4,2,180,180) )$
@end example
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} adapt_depth
Valor padr@~{a}o: 10

@code{adapt_depth} @'{e} o n@'{u}mero m@'{a}ximo de quebras usado pelas rotinas adaptativos de impress@~{a}o.

Essa op@value{cedilha}@~{a}o @'{e} relevante somente para fun@value{cedilha}@~{o}es 2d @code{explicitas}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} key
Valor padr@~{a}o: @code{""} (a seq@"{u}@^{e}ncia de caracteres vazia)

@code{key} @'{e} o nome de uma fun@value{cedilha}@~{a}o na legenda. Se @code{key} @'{e} uma
seq@"{u}@^{e}ncia de caracteres vazia, nenhuma chave @'{e} atribu@'{i}da @`a fun@value{cedilha}@~{a}o.

Essa op@value{cedilha}@~{a}o afeta os seguintes objetos gr@'{a}ficos:
@itemize @bullet
@item
@code{gr2d}: @code{points}, @code{polygon}, @code{rectangle},
@code{ellipse}, @code{vector}, @code{explicit}, @code{implicit},
@code{parametric}, e @code{polar}.

@item
@code{gr3d}: @code{points}, @code{explicit}, @code{parametric},
e @code{parametric_surface}.
@end itemize

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(key = "Seno",
             explicit(sin(x),x,0,10),
             key = "Cosseno",
             line_type = 3,
             explicit(cos(x),x,0,10) )$
@end example
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} xu_grid
Valor padr@~{a}o: 30

@code{xu_grid} @'{e} o n@'{u}mero de coordenadas da primeira vari@'{a}vel
(@code{x} na forma expl@'{i}cita e o n@'{u}mero de coordenadas de @code{u} em superf@'{i}cies tridimensionais na forma param@'{e}trica) para 
contruir a grade dos pontos de amostra.

Essa op@value{cedilha}@~{a}o afeta os seguintes objetos gr@'{a}ficos:
@itemize @bullet
@item
@code{gr3d}: @code{explicit} e @code{parametric_surface}.
@end itemize

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw3d(xu_grid = 10,
             yv_grid = 50,
             explicit(x^2+y^2,x,-3,3,y,-3,3) )$
@end example

Veja tamb@'{e}m @code{yv_grid}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} yv_grid
Valor padr@~{a}o: 30

@code{yv_grid} @'{e} o n@'{u}mero de coordenadas da segunda vari@'{a}vel
(@code{y} na forma expl@'{i}cita e o n@'{u}mero de coordenadas de @code{v} em superf@'{i}cies tridimensionais na forma param@'{e}trica) para 
construir a grade dos pontos de amostra.

Essa op@value{cedilha}@~{a}o afeta os seguintes objetos gr@'{a}ficos:
@itemize @bullet
@item
@code{gr3d}: @code{explicit} e @code{parametric_surface}.
@end itemize

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw3d(xu_grid = 10,
             yv_grid = 50,
             explicit(x^2+y^2,x,-3,3,y,-3,3) )$
@end example

Veja tamb@'{e}m @code{xu_grid}.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} surface_hide
Valor padr@~{a}o: @code{false}

Se @code{surface_hide} for @code{true}, partes escondidas n@~{a}o s@~{a}o mostradas no gr@'{a}fico em superf@'{i}cies tridimensioais.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw(columns=2,
           gr3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3)),
           gr3d(surface_hide = true,
                explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3)) )$
@end example
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} contour
Valor padr@~{a}o: @code{none}

Option @code{contour} torna o usu@'{a}rio capaz de selecionar onde imprimir linhas de contorno.
Valores poss@'{i}veis s@~{a}o:

@itemize @bullet

@item
@code{none}:
nenhuma linha de contorno @'{e} mostrada.

@item
@code{base}:
linhas de contorno s@~{a}o projetadas no plano xy.

@item
@code{surface}:
linhas de contorno s@~{a}o mostradas sobre a superf@'{i}cie.

@item
@code{both}:
duas linhas de contorno s@~{a}o mostradas: no plano xy e sobre a superf@'{i}cie.

@item
@code{map}:
linhas de contorno s@~{a}o projetadas sobre o plano xy, e o ponto de boserva@value{cedilha}@~{a}o @'{e}
escolhido na vertical.

@end itemize

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw3d(explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
             contour_levels = 15,
             contour        = both,
             surface_hide   = true) $
@end example
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} contour_levels
Valor padr@~{a}o: 5

@code{contour_levels} @'{e} o n@'{u}mero de n@'{i}veis em gr@'{a}ficos de contorno.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo
n@~{a}o @'{e} importante.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw3d(explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
             contour_levels = 15,
             contour        = both,
             surface_hide   = true) $
@end example
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} columns
Valor padr@~{a}o: 1

@code{columns} @'{e} o n@'{u}mero de colunas em gr@'{a}ficos multiplos.

Uma vez que essa @'{e} uma op@value{cedilha}@~{a}o gr@'{a}fica global, sua posi@value{cedilha}@~{a}o na descri@value{cedilha}@~{a}o do fundo do gr@'{a}fico
n@~{a}o @'{e} importante. Pode tamb@'{e}m ser usado como um argumento da fun@value{cedilha}@~{a}o @code{draw}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) scene1: gr2d(title="Elipse",
                   nticks=30,
                   parametric(2*cos(t),5*sin(t),t,0,2*%pi))$
(%i3) scene2: gr2d(title="Tri@^{a}ngulo",
                   polygon([4,5,7],[6,4,2]))$
(%i4) draw(scene1, scene2, columns = 2)$
@end example

@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} ip_grid
Valor padr@~{a}o: @code{[50, 50]}

@code{ip_grid} escolhe a grade para a primeira amostragem em gr@'{a}ficos impl@'{i}citos.

Essa op@value{cedilha}@~{a}o @'{e} relevante somente para @code{implicit} objects.
@end defvr



@defvr {Op@value{cedilha}@~{a}o gr@'{a}fica} ip_grid_in
Valor padr@~{a}o: @code{[5, 5]}

@code{ip_grid_in} escolhe a grade para a segunda amostragem em gr@'{a}ficos impl@'{i}citos.

Essa op@value{cedilha}@~{a}o @'{e} relevante somente para @code{implicit} objects.
@end defvr









@deffn {Construtor de fundo gr@'{a}fico} gr2d (@var{op@value{cedilha}@~{a}o gr@'{a}fica}, ..., @var{objeto gr@'{a}fico}, ...)

A fun@value{cedilha}@~{a}o @code{gr2d} constr@'{o}i um objeto descrevendo um fundo gr@'{a}fico em duas dimens@~{o}es. Arguments are
@i{op@value{cedilha}@~{o}es gr@'{a}ficas} e @i{objetos gr@'{a}ficos}. Esse fundo gr@'{a}fico @'{e} interpretado
seq@"{u}@^{e}ncialmente: @i{op@value{cedilha}@~{o}es gr@'{a}ficas} afetam aqueles @i{objetos gr@'{a}ficos} colocados
imediatamente @`a sua direita.

Para fazer uso dessa fun@value{cedilha}@~{a}o escreva primeiramente @code{load(draw)}.

Adiante encontra-se uma lista de @i{objetos gr@'{a}ficos} dispon@'{i}vies para fundos gr@'{a}ficos em duas dimens@~{o}es:

@itemize @bullet
@item
@code{points([[x1,y1], [x2,y2], [x3,y3],...])} ou @code{points([x1,x2,x3,...], [y1,y2,y3,...])}:
posiciona os pontos @code{[x1,y1]}, @code{[x2,y2]}, @code{[x2,y2]}, ... no gr@'{a}fico.

Esse objeto @'{e} efetado pelas seguintes @i{op@value{cedilha}@~{o}es gr@'{a}ficas}: @code{point_size}, 
@code{point_type}, @code{points_joined}, @code{line_width}, @code{key},
@code{line_type} e @code{color}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(key           = "Small points",
             points(makelist([random(20),random(50)],k,1,10)),
             point_type    = 6,
             point_size    = 3,
             points_joined = true,
             key           = "Great points",
             points(makelist(k,k,1,20),makelist(random(30),k,1,20)))$
@end example

@item
@code{polygon([[x1,y1], [x2,y2], [x3,y3],...])} ou @code{polygon([x1,x2,x3,...], [y1,y2,y3,...])}:
desenha um pol@'{i}gono com v@'{e}rtices @code{[x1,y1]}, @code{[x2,y2]}, @code{[x2,y2]}, ... no plano.

Esse objeto @'{e} afetado pelas seguintes @i{op@value{cedilha}s gr@'{a}ficas}: @code{transparent}, 
@code{fill_color}, @code{border}, @code{line_width}, @code{key},
@code{line_type} @code{color}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(color      = "#e245f0",
             line_width = 8,
             polygon([[3,2],[7,2],[5,5]]),
             border      = false,
             fill_color  = yellow,
             polygon([[5,2],[9,2],[7,5]]) )$
@end example



@item
@code{rectangle([x1,y1], [x2,y2])}:
desenha um ret@^{a}ngulo partindo do v@'{e}rtice @code{[x1,y1]} e terminando no v@'{e}rtice @code{[x2,y2]} oposto ao primeiro.

Esse objeto @'{e} afetado pelas seguintes @i{op@value{cedilha}@~{o}es gr@'{a}ficas}: @code{transparent}, 
@code{fill_color}, @code{border}, @code{line_width}, @code{key},
@code{line_type} e @code{color}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(fill_color  = red,
             line_width  = 6,
             line_type   = dots,
             transparent = false,
             fill_color   = blue,
             rectangle([-2,-2],[8,-1]),   /* opposite vertices */
             transparent = true,
             line_type   = solid,
             line_width  = 1,
             rectangle([9,4],[2,-1.5]),
             xrange      = [-3,10],
             yrange      = [-3,4.5] )$
@end example


@item
@code{ellipse(xc, yc, a, b, ang1, ang2)}:
desenha uma elipse com centro em @code{[xc, yc]} com semi-eixo maior @code{a} e
semi-eixo menor @code{b} tra@value{cedilha}ando um arco de elipse que se inicia no @^{a}ngulo @code{ang1} e que vai
at@'{e} o @^{a}ngulo @code{ang2}.
semi axis @code{a} e @code{b}, respectively, from angle @code{ang1} to angle
@code{ang2}.

Esse objeto @'{e} afetado pelas seguintes @i{op@value{cedilha}@~{o}es gr@'{a}ficas}: @code{nticks}, 
@code{transparent}, @code{fill_color}, @code{border}, @code{line_width}, 
@code{line_type}, @code{key} e @code{color}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(transparent = false,
             fill_color  = 8,
             color       = gray30,
             transparent = false,
             line_width  = 5,
             ellipse(0,6,3,2,270,-270),  /* center (x,y), a, b, start & end in degrees */
             transparent = true,
             color       = blue,
             line_width  = 3,
             ellipse(2.5,6,2,3,30,-90),
             xrange      = [-3,6],
             yrange      = [2,9] )$
@end example


@item
@code{label(r@'{o}tulo,x,y)}:
escreve o @code{r@'{o}tulo} no ponto @code{[x,y]}.

Esse objeto @'{e} afetado pelas seguintes @i{op@value{cedilha}@~{o}es gr@'{a}ficas}: @code{label_alignment}, 
@code{label_orientation} e @code{color}.

Exemplo:

Nesse exemplo, um ponto imagin@'{a}rio @'{e} adicionado para firmar a imagem.
O pacote @code{draw} precisa sempre da dados para desenhar um fundo.
Essas cores podem mudar em diferentes terminais.
@example
(%i1) load(draw)$
(%i2) draw2d(explicit(x^2,x,-1,1),
             color = "red",
             label("Label in red",0,0.3),
             color = "#0000ff",
             label("Label in blue",0,0.6),
             color = "light-blue", /* double quotes if - is used */
             label("R@'{o}tulo em light-blue",0,0.9)  )$
@end example


@item
@code{vector([x,y], [dx,dy])}:
desenha um vetor de componentes ortogonais @code{[dx,dy]} com or@'{i}gem eno ponto @code{[x,y]}.

Esse objeto @'{e} afetado pelas seguintes @i{op@value{cedilha}@~{o}es gr@'{a}ficas}: @code{head_both}, 
@code{head_length}, @code{head_angle}, @code{head_type}, @code{line_width}, 
@code{line_type} e @code{key}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(xrange      = [0,12],
             yrange      = [0,10],
             head_length = 1,
             vector([0,1],[5,5]), /* default type */
             head_type = 'empty,
             vector([3,1],[5,5]),
             head_both = true,
             head_type = 'nofilled,
             line_type = dots,
             vector([6,1],[5,5]))$
@end example


@item
@code{explicit(fcn,var,minval,maxval)}:
monta o gr@'{a}fico da fun@value{cedilha}@~{a}o expl@'{i}cita @code{fcn}, com vari@'{a}vel @code{var} assumindo valores
de @code{minval} a @code{maxval}.

Esse objeto @'{e} afetado pelas seguintes @i{op@value{cedilha}@~{o}es gr@'{a}ficas}: @code{nticks}, 
@code{adapt_depth}, @code{line_width}, @code{line_type}, @code{key},
@code{filled_func}, @code{fill_color} e @code{color}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(line_width = 3,
             color      = blue,
             explicit(x^2,x,-3,3) )$
(%i3) draw2d(fill_color  = brown,
             filled_func = true,
             explicit(x^2,x,-3,3) )$
@end example


@item
@code{implicit(fcn,x-var,x-minval,x-maxval,y-var,y-minval,y-maxval)}:
monta o gr@'{a}fico da fun@value{cedilha}@~{a}o impl@'{i}cita definida por @code{fcn}, com vari@'{a}vel @code{x-var} assumindo
de @code{x-minval} a @code{x-maxval}, e vari@'{a}vel @code{y-var} assumindo valores
de @code{y-minval} a @code{y-maxval}.

Esse objeto @'{e} afetado pelas seguintes @i{op@value{cedilha}@~{o}es gr@'{a}ficas}: @code{ip_grid}, 
@code{ip_grid_in}, @code{line_width}, @code{line_type}, @code{key} e @code{color}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(terminal  = eps,
             grid      = true,
             line_type = solid,
             key       = "y^2=x^3-2*x+1",
             implicit(y^2=x^3-2*x+1, x, -4,4, y, -4,4),
             line_type = dots,
             key       = "x^3+y^3 = 3*x*y^2-x-1",
             implicit(x^3+y^3 = 3*x*y^2-x-1, x, -4,4, y, -4,4),
             title     = "Duas fun@value{cedilha}@~{o}es impl@'{i}citas" )$
@end example

@item
@code{polar(radius,ang,minang,maxang)}:
plots function @code{radius(ang)} defined in polar coordinates, com a vari@'{a}vel @code{ang}
assumindo valores de @code{minang} a @code{maxang}.

Esse objeto @'{e} afetado pelas seguintes @i{op@value{cedilha}@~{o}es gr@'{a}ficas}: @code{nticks}, 
@code{line_width}, @code{line_type}, @code{key} e @code{color}.


Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(user_preamble = "set grid polar",
             nticks        = 200,
             xrange        = [-5,5],
             yrange        = [-5,5],
             line_type     = 6,
             line_width    = 3,
             title         = "Hyperbolic Spiral",
             polar(10/theta,theta,1,10*%pi) )$
@end example


@item
@code{parametric(xfun,yfun,par,parmin,parmax)}:
monta o gr@'{a}fico da fun@value{cedilha}@~{a}o param@'{e}trica @code{[xfun,yfun]}, com par@^{a}metro @code{par}
assumindo valores de @code{parmin} a @code{parmax}.

Esse objeto @'{e} afetado pelas seguintes @i{op@value{cedilha}@~{o}es gr@'{a}ficas}: @code{nticks}, 
@code{line_width}, @code{line_type}, @code{key} e @code{color}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw2d(explicit(exp(x),x,-1,3),
             color = red,
             key   = "Esse @'{e} a unidade param@'{e}trica!!",
             parametric(2*cos(rrr),rrr^2,rrr,0,2*%pi))$
@end example





@item
@code{image(im,x0,y0,width,height)}:
monta o gr@'{a}fico da im@'{a}gem @code{im} em uma regi@~{a}o retangular do v@'{e}rtice @code{(x0,y0)} ao v@'{e}rtice
@code{(x0+width,y0+height)} no plano real. O argumeto @code{im} deve ser uma
matriz de n@'{u}meros reais, ou uma matriz de vetores de comprimento tr@^{e}s.

Se @code{im} for uma matriz de n@'{u}meros reais, valores de pixel s@~{a}o interpretados conforme
a op@value{cedilha}@~{a}o gr@'{a}fica @code{palette}, que @'{e} um vetor de comprimento tr@^{e}s com componentes
num@'{e}ricas variando de -36 a +36; cada valor @'{e} um @'{i}ndice para uma f@'{o}rmula mapeando os n@'{i}veis
sobre as cores vermelha, verde e azul, respectivamente:
@example
 0: 0               1: 0.5           2: 1
 3: x               4: x^2           5: x^3
 6: x^4             7: sqrt(x)       8: sqrt(sqrt(x))
 9: sin(90x)       10: cos(90x)     11: |x-0.5|
12: (2x-1)^2       13: sin(180x)    14: |cos(180x)|
15: sin(360x)      16: cos(360x)    17: |sin(360x)|
18: |cos(360x)|    19: |sin(720x)|  20: |cos(720x)|
21: 3x             22: 3x-1         23: 3x-2
24: |3x-1|         25: |3x-2|       26: (3x-1)/2
27: (3x-2)/2       28: |(3x-1)/2|   29: |(3x-2)/2|
30: x/0.32-0.78125 31: 2*x-0.84     32: 4x;1;-2x+1.84;x/0.08-11.5
33: |2*x - 0.5|    34: 2*x          35: 2*x - 0.5
36: 2*x - 1
@end example
n@'{u}meros negativos significam componente de cor negativa.

@code{palette = gray} e @code{palette = color} s@~{a}o atalhos para
@code{palette = [3,3,3]} e @code{palette = [7,5,15]}, respectivamente.

Se @code{im} for uma matriz de vetores de comprimento tr@^{e}s, eles s@~{a}o interpretados
como componenetes das cores vermelho, verde e azul.

Exemplos:

se @code{im} for uma matriz de n@'{u}meros reais, valores de pixel s@~{a}o interpretados conforme
a op@value{cedilha}@~{a}o gr@'{a}fica @code{palette}.
@example
(%i1) load(draw)$
(%i2) im: apply(
           'matrix,
            makelist(makelist(random(200),i,1,30),i,1,30))$
(%i3) /* palette = color, default */
      draw2d(image(im,0,0,30,30))$
(%i4) draw2d(palette = gray, image(im,0,0,30,30))$
(%i5) draw2d(palette = [15,20,-4],
             colorbox=false,
             image(im,0,0,30,30))$
@end example

Veja tamb@'{e}m @code{colorbox}.

Se @code{im} for uma matriz de vetores de comprimento tr@^{e}s, eles s@~{a}o interpretados
como componentes da cores vermelho, verde e azul.
@example
(%i1) load(draw)$
(%i2) im: apply(
            'matrix,
             makelist(
               makelist([random(300),
                         random(300),
                         random(300)],i,1,30),i,1,30))$
(%i3) draw2d(image(im,0,0,30,30))$
@end example

@end itemize

Veja tamb@'{e}m as seguintes op@value{cedilha}@~{o}es gr@'{a}ficas: @code{xrange}, @code{yrange}, 
@code{logx}, @code{logy}, @code{terminal}, @code{grid}, @code{title}, 
@code{xlabel}, @code{ylabel}, @code{xtics}, @code{ytics}, @code{xy_file}, 
@code{file_name}, @code{pic_width}, @code{pic_height}, 
@code{eps_width}, @code{eps_height},
@code{user_preamble}, @code{axis_bottom}, @code{axis_left}, @code{axis_top}, 
e @code{axis_right}.

@end deffn









@deffn {Scene constructor} gr3d (@var{op@value{cedilha}@~{a}o gr@'{a}fica}, ..., @var{objeto gr@'{a}fico}, ...)

A fun@value{cedilha}@~{a}o @code{gr3d} constr@'{o}i um objeto descrevendo um fundo gr@'{a}fico tridimensional. Argumentos s@~{a}o
@i{op@value{cedilha}@~{o}es gr@'{a}ficas} e @i{objetos gr@'{a}ficos}. Esse fundo gr@'{a}fico @'{e} interpretado
seq@"{u}@^{e}ncialmente: @i{op@value{cedilha}@~{o}es gr@'{a}ficas} afetam aqueles @i{objetos gr@'{a}ficos} colocados
imediatamente @`a sua direita.

Para fazer uso dessa fun@value{cedilha}@~{a}o escreva primeiramente @code{load(draw)}.

Essa @'{e} a lista dos @i{objetos gr@'{a}ficos} dispon@'{i}veis para fundos gr@'{a}ficos tridimensionais:

@itemize @bullet
@item
@code{points([[x1,y1,z1], [x2,y2,z2], [x3,y3,z3],...])} ou 
@code{points([x1,x2,x3,...], [y1,y2,y3,...], [z1,z2,z3,...])}:
posiciona os pontos @code{[x1,y1,z1]}, @code{[x2,y2,z2]}, @code{[x2,y2,z3]}, ... no gr@'{a}fico.

Esse objeto @'{e} afetado pelas seguintes @i{op@value{cedilha}@~{o}es gr@'{a}ficas}: @code{point_size}, 
@code{point_type}, @code{points_joined}, @code{line_width}, @code{key}, @code{line_type}
e @code{color}.

Exemplos:

Uma amostra tridimensional,
@example
(%i1) load(draw)$
(%i2) load (numericalio)$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) draw3d(title      = "Velocidades di@'{a}rias de ventos dispon@'{i}veis",
             point_size = 2,
             points(args(submatrix (s2, 4, 5))) )$
@end example

Duas amostras tridimensionais,
@example
(%i1) load(draw)$
(%i2) load (numericalio)$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) draw3d(title      = "Velocidades di@'{a}rias de ventos dispon@'{i}veis. Dois conjuntos de dados",
             point_size = 2,
             key        = "Amostras das esta@value{cedilha}@~oes 1, 2 e 3",
             points(args(submatrix (s2, 4, 5))),
             point_type = 4,
             key        = "Amostras das esta@value{cedilha}@~{o}es 1, 4 e 5",
             points(args(submatrix (s2, 2, 3))) )$
@end example


@item
@code{label(r@'{o}tulo,x,y,z)}:
escreve @code{r@'{o}tulo} no ponto @code{[x,y,z]}.

Esse objeto @'{e} afetado pelas seguintes @i{op@value{cedilha}@~{o}es gr@'{a}ficas}: @code{label_alignment}, 
@code{label_orientation} e @code{color}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3),
             color = red,
             label("SUBINDO",-2,0,3),
             color = blue,
             label("DESCENDO",2,0,-3) )$
@end example




@item
@code{vector([x,y,z], [dx,dy,dz])}:
monta o gr@'{a}fico do vetor @code{[dx,dy,dz]} com or@'{i}gem em @code{[x,y,z]}.

Esse objeto @'{e} afetado pelas seguintes @i{op@value{cedilha}@~{o}es gr@'{a}ficas}: @code{head_both}, 
@code{head_type}, @code{line_width}, 
@code{line_type}, @code{key} e @code{color}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw3d(color = cyan,
             vector([0,0,0],[1,1,1]/sqrt(3)),
             vector([0,0,0],[1,-1,0]/sqrt(2)),
             vector([0,0,0],[1,1,-2]/sqrt(6)) )$
@end example



@item
@code{explicit(fcn,var1,minval1,maxval1,var2,minval2,maxval2)}:
monta o gr@'{a}fico da fun@value{cedilha}@~{a}o expl@'{i}cita @code{fcn}, com a vari@'{a}vel @code{var1} assumindo valores
de @code{minval1} a @code{maxval1} e vari@'{a}vel @code{var2} assumindo valores
de @code{minval2} a @code{maxval2}.

Esse objeto @'{e} afetado pelas seguintes @i{op@value{cedilha}@~{o}es gr@'{a}ficas}: @code{xu_grid}, 
@code{yv_grid}, @code{line_type}, @code{key} e @code{color}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw3d(key   = "Gauss",
             color = "#a02c00",
             explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3),
             color = blue,
             key   = "Plane",
             explicit(x+y,x,-5,5,y,-5,5),
             surface_hide = true)$
@end example


@item
@code{parametric(xfun,yfun,zfun,par,parmin,parmax)}:
monta o gr@'{a}fico da curva param@'{e}trica @code{[xfun,yfun,zfun]}, com par@^{a}metro @code{par}
assumindo valores de @code{parmin} a @code{parmax}.

Esse objeto @'{e} afetado pelas seguintes @i{op@value{cedilha}@~{o}es gr@'{a}ficas}: @code{nticks}, 
@code{line_width}, @code{line_type}, @code{key} e @code{color}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3),
             color = royalblue,
             parametric(cos(5*u)^2,sin(7*u),u-2,u,0,2),
             color      = turquoise,
             line_width = 2,
             parametric(t^2,sin(t),2+t,t,0,2),
             surface_hide = true,
             title = "Surface & curves" )$
@end example


@item
@code{parametric_surface(xfun,yfun,zfun,par1,par1min,par1max,par2,par2min,par2max)}:
monta o gr@'{a}fico da superf@'{i}cie param@'{e}trica @code{[xfun,yfun,zfun]}, com par@^{a}metro @code{par1}
assumindo valores de @code{par1min} a @code{par1max} e o par@^{a}metro @code{par2}
assumindo valores de @code{par2min} a @code{par2max}.

Esse objeto @'{e} afetado pelas seguintes @i{op@value{cedilha}@~{o}es gr@'{a}ficas}: @code{xu_grid}, 
@code{yv_grid}, @code{line_type}, @code{key} e @code{color}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) draw3d(title          = "Concha do mar",
             xu_grid        = 100,
             yv_grid        = 25,
             rot_vertical   = 100,
             rot_horizontal = 20,
             surface_hide   = true,
             parametric_surface(0.5*u*cos(u)*(cos(v)+1),
                                0.5*u*sin(u)*(cos(v)+1),
                                u*sin(v) - ((u+3)/8*%pi)^2 - 20,
                                u, 0, 13*%pi, v, -%pi, %pi) )$
@end example

@end itemize

Veja tamb@'{e}m as seguintes op@value{cedilha}@~{o}es gr@'{a}ficas: @code{xrange}, @code{yrange}, 
@code{zrange}, @code{logx}, @code{logy}, @code{logz}, @code{terminal}, 
@code{grid}, @code{title}, @code{xlabel}, @code{ylabel}, @code{zlabel}, 
@code{xtics}, @code{ytics}, @code{ztics}, @code{xy_file}, 
@code{user_preamble}, @code{axis_bottom}, @code{axis_left}, 
@code{axis_top}, @code{file_name}, @code{pic_width}, @code{pic_height}, 
@code{eps_width}, @code{eps_height},
@code{axis_right}, @code{rot_vertical}, @code{rot_horizontal}, 
@code{axis_3d}, @code{xu_grid}, @code{yv_grid}, @code{surface_hide}, 
@code{contour}, @code{contour_levels}, @code{palette}, @code{colorbox}
e @code{enhanced3d}.


@end deffn







@deffn {Function} draw (@var{gr2d}, ..., @var{gr3d}, ..., @var{op@value{cedilha}@~{o}es}, ...)

Monta o fundo de uma s@'{e}rie de gr@'{a}ficos; seus argumentos s@~{a}o objetos @code{gr2d} e
@code{gr3d}, juntamente com algumas op@value{cedilha}@~{o}es. Por padr@~{a}o, o fundos gr@'{a}ficos s@~{a}o colocados juntos
em uma coluna.

A fun@value{cedilha}@~{a}o @code{draw} aceita duas op@value{cedilha}@~{o}es poss@'{i}veis: @code{terminal} 
e @code{columns}.

As fun@value{cedilha}@~{o}es @code{draw2d} e @code{draw3d} s@~{a}o atalhos para serem usados 
quando somente um fundo gr@'{a}fico @'{e} requerido, em duas ou tr@^{e}s dimens@~{o}es, respectivamente.

Para fazer uso dessa fun@value{cedilha}@~{a}o escreva primeiramente @code{load(draw)}.

Exemplo:

@example
(%i1) load(draw)$
(%i2) scene1: gr2d(title="Ellipse",
                   nticks=30,
                   parametric(2*cos(t),5*sin(t),t,0,2*%pi))$
(%i3) scene2: gr2d(title="Triangle",
                   polygon([4,5,7],[6,4,2]))$
(%i4) draw(scene1, scene2, columns = 2)$
@end example
@end deffn


@deffn {Fun@value{cedilha}@~{a}o} draw2d (@var{op@value{cedilha}@~{a}o}, @var{objeto gr@'{a}fico}, ...)

Essa fun@value{cedilha}@~{a}o @'{e} um atalho para
@code{draw2d(gr2d(@var{op@value{cedilha}@~{o}es}, ..., @var{objeto gr@'{a}fico}, ...))}.

Pode ser usada para montar gr@'{a}fico de um @'{u}nico fundo bidimensional.

Para fazer uso dessa fun@value{cedilha}@~{a}o escreva primeiramente @code{load(draw)}.

@end deffn


@deffn {Fun@value{cedilha}@~{a}o} draw3d (@var{op@value{cedilha}@~{a}o}, @var{graphic object}, ...)

Essa fun@value{cedilha}@~{a}o @'{e} um atalho para
@code{draw3d(gr3d(@var{op@value{cedilha}@~{o}es}, ..., @var{objeto gr@'{a}fico}, ...))}.

Pode ser usada para montar o fundo gr@'{a}fico @'{u}nico tridmensional.

Para fazer uso dessa fun@value{cedilha}@~{a}o escreva primeiramente @code{load(draw)}.

@end deffn



@defvr {Vari@'{a}vel} draw_pipes
Valor padr@~{a}o: @code{true}

Quando @code{draw_pipes} for @code{true}, Maxima comunica-se com Gnuplot
diretamente (via pipes). Se @code{draw_pipes} for @code{false}, Maxima comunica-se 
com Gnuplot via arquivos. Essa op@value{cedilha}@~{a}o n@~{a}o est@'{a} dispon@'{i}vel para usu@'{a}rios windows.

@end defvr

