Update docs to match implementation of $build_and_dump_html_index
[maxima.git] / doc / info / pt_BR / draw.texi
blob2889abc318941b73df7d7dd090af6c9badbed314
1 @c Language: Brazilian Portuguese, Encoding: iso-8859-1
2 @c /draw.texi/1.13/Sat Jun  2 00:13:20 2007//
3 @menu
4 * Introdução a draw::
5 * Funções e Variáveis Definidas para draw::
6 @end menu
12 @node Introdução a draw, Funções e Variáveis Definidas para draw, draw, draw
13 @section Introdução a draw
16 @code{draw} é uma interface entre o Maxima e o Gnuplot.
18 Existem três funções a serem usadas n nível do Maxima: 
19 @code{draw2d}, @code{draw3d} e @code{draw}.
21 Siga o link abaixo para exemplos mais elaborados deste pacote:
23 @url{http://es.geocities.com/riotorto/maxima/gpdraw}
25 Voce precisará do Gnuplot 4.2 para executar este programa.
32 @node Funções e Variáveis Definidas para draw,  , Introdução a draw, draw
33 @section Funções e Variáveis Definidas para draw
38 @defvr {Opção gráfica} xrange
39 Valor padrão: @code{false}
41 Se @code{xrange} for @code{false}, o intevalo para a coordenada @var{x} é
42 calculado automaticamente.
44 Caso o usuário deseje um intervalo específico para @var{x}, esse intervalo deve ser fornecido como uma 
45 lista da forma definida pelo Maxima, como em @code{xrange=[-2, 3]}.
47 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
48 não é importante.
50 Exemplo:
52 @example
53 (%i1) load("draw")$
54 (%i2) draw2d(xrange = [-3,5],
55              explicit(x^2,x,-1,1))$
56 @end example
58 Veja também @code{yrange} e @code{zrange}.
59 @end defvr
63 @defvr {Opção gráfica} yrange
64 Valor padrão: @code{false}
66 Se @code{yrange} for @code{false}, the range for the @var{y} coordinate is
67 computed automatically.
69 Se o usuário sesejar um intervalo específico para @var{y}, esse intervalo deve ser fornecido como uma 
70 lista da forma definida pelo Maxima, como em @code{yrange=[-2, 3]}.
72 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
73 não é importante.
75 Exemplo:
77 @example
78 (%i1) load("draw")$
79 (%i2) draw2d(yrange = [-2,3],
80              explicit(x^2,x,-1,1),
81              xrange = [-3,3])$
82 @end example
84 Veja também @code{xrange} e @code{zrange}.
85 @end defvr
89 @defvr {Opção gráfica} zrange
90 Valor padrão: @code{false}
92 Se @code{zrange} for @code{false}, o intervalo para a coordenada @var{z} é
93 calculado automaticamente.
95 Se o usuário sesejar um intervalo específico para @var{z}, esse intervalo deve ser fornecido como uma 
96 lista da forma definida pelo Maxima, como em @code{zrange=[-2, 3]}.
98 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
99 não é importante.
101 Exemplo:
103 @example
104 (%i1) load("draw")$
105 (%i2) draw3d(yrange = [-3,3],
106              zrange = [-2,5],
107              explicit(x^2+y^2,x,-1,1,y,-1,1),
108              xrange = [-3,3])$
109 @end example
111 Veja também @code{yrange} e @code{zrange}.
112 @end defvr
116 @defvr {Opção gráfica} logx
117 Valor padrão: @code{false}
119 Se @code{logx} for @code{true}, o eixo @var{x}será desenhado em
120 escala logarítmica.
122 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
123 não é importante.
125 Exemplo:
127 @example
128 (%i1) load("draw")$
129 (%i2) draw2d(explicit(log(x),x,0.01,5),
130              logx = true)$
131 @end example
133 Veja também @code{logy} e @code{logz}.
134 @end defvr
138 @defvr {Opção gráfica} logy
139 Valor padrão: @code{false}
141 Se @code{logy} for @code{true}, o eixo @var{y}será desenhado em
142 escala logarítmica.
144 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
145 não é importante.
147 Exemplo:
149 @example
150 (%i1) load("draw")$
151 (%i2) draw2d(logy = true,
152              explicit(exp(x),x,0,5))$
153 @end example
155 Veja também @code{logx} e @code{logz}.
156 @end defvr
160 @defvr {Opção gráfica} logz
161 Valor padrão: @code{false}
163 Se @code{logz} for @code{true}, o eixo @var{z}será desenhado em
164 escala logarítmica.
166 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
167 não é importante.
169 Exemplo:
171 @example
172 (%i1) load("draw")$
173 (%i2) draw3d(logz = true,
174              explicit(exp(u^2+v^2),u,-2,2,v,-2,2))$
175 @end example
177 Veja também @code{logx} e @code{logy}.
178 @end defvr
182 @defvr {Opção gráfica} terminal
183 Valor padrão: @code{screen}
185 Seleciona o terminal a ser usado pelo Gnuplot; os valores possíveis são:
186 @code{screen} (o valor padrão), @code{png}, @code{jpg}, @code{eps}, e @code{eps_color}.
188 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
189 não é importante. Pode também ser usada como um argumento da função @code{draw}
191 Exemplos:
193 @example
194 (%i1) load("draw")$
195 (%i2) /* screen terminal (default) */
196       draw2d(explicit(x^2,x,-1,1))$
197 (%i3) /* png file */
198       draw2d(terminal  = 'png,
199              pic_width = 300,
200              explicit(x^2,x,-1,1))$
201 (%i4) /* jpg file */
202       draw2d(terminal   = 'jpg,
203              pic_width  = 300,
204              pic_height = 300,
205              explicit(x^2,x,-1,1))$
206 (%i5) /* eps file */
207       draw2d(file_name = "myfile",
208              explicit(x^2,x,-1,1),
209              terminal  = 'eps)$
210 @end example
212 Veja também @code{file_name}, @code{pic_width}, e @code{pic_height}.
213 @end defvr
217 @defvr {Opção gráfica} grid
218 Valor padrão: @code{false}
220 Se @code{grid} for @code{true}, uma malha será desenhada sobre o plano @var{xy}.
222 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
223 não é importante.
225 Exemplo:
227 @example
228 (%i1) load("draw")$
229 (%i2) draw2d(grid = true,
230              explicit(exp(u),u,-2,2))$
231 @end example
232 @end defvr
236 @defvr {Opção gráfica} title
237 Valor padrão: @code{""} (a seq@"{u}ência de caracteres vazia)
239 A opção @code{title} armazena uma seq@"{u}ência de caracteres do Maxima com o título principal de um fundo gráfico.
240 Por padrão, nenhum título é escrito.
242 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
243 não é importante.
245 Exemplo:
247 @example
248 (%i1) load("draw")$
249 (%i2) draw2d(explicit(exp(u),u,-2,2),
250              title = "Exponential function")$
251 @end example
252 @end defvr
256 @defvr {Opção gráfica} xlabel
257 Valor padrão: @code{""} (a seq@"{u}ência de caracteres vazia)
259 A opção @code{xlabel} armazena uma seq@"{u}ência de caracteres do Maxima com o rótulo para o eixo @var{x}.
260 Por padrão, nenhum rótulo é escrito.
262 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
263 não é importante.
265 Exemplo:
267 @example
268 (%i1) load("draw")$
269 (%i2) draw2d(xlabel = "Time",
270              explicit(exp(u),u,-2,2),
271              ylabel = "Population")$
272 @end example
274 Veja também @code{ylabel}, e @code{zlabel}.
275 @end defvr
279 @defvr {Opção gráfica} ylabel
280 Valor padrão: @code{""} (a seq@"{u}ência de caracteres vazia)
282 A opção @code{ylabel} armazena uma seq@"{u}ência de caracteres do Maxima com o rótulo para o eixo @var{y}.
283 Por padrão, nenhum rótulo é escrito.
285 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
286 não é importante.
288 Exemplo:
290 @example
291 (%i1) load("draw")$
292 (%i2) draw2d(xlabel = "Time",
293              ylabel = "Population",
294              explicit(exp(u),u,-2,2) )$
295 @end example
297 Veja também @code{xlabel}, e @code{zlabel}.
298 @end defvr
302 @defvr {Opção gráfica} zlabel
303 Valor padrão: @code{""} (a seq@"{u}ência de caracteres vazia)
305 A opção @code{zlabel} armazena uma seq@"{u}ência de caracteres do Maxima com o rótulo para o eixo @var{z}.
306 Por padrão, nenhum rótulo é escrito.
308 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
309 não é importante.
311 Exemplo:
313 @example
314 (%i1) load("draw")$
315 (%i2) draw3d(zlabel = "Z variable",
316              ylabel = "Y variable",
317              explicit(sin(x^2+y^2),x,-2,2,y,-2,2),
318              xlabel = "X variable" )$
319 @end example
321 Veja também @code{xlabel}, e @code{ylabel}.
322 @end defvr
326 @defvr {Opção gráfica} xtics
327 Valor padrão: @code{true}
329 Se @code{xtics} for @code{true}, a marcação numérica será feitas sobre o eixo @var{x}.
331 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
332 não é importante.
334 Exemplo:
336 @example
337 (%i1) load("draw")$
338 (%i2) /* No tics in the x-axis */
339       draw2d(xtics = false,
340              explicit(exp(u),u,-2,2))$
341 @end example
343 Veja também @code{ytics}, e @code{ztics}.
344 @end defvr
348 @defvr {Opção gráfica} ytics
349 Valor padrão: @code{true}
351 Se @code{ytics} for @code{true}, a marcação numérica será feitas sobre o eixo @var{y}.
353 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
354 não é importante.
356 Exemplo:
358 @example
359 (%i1) load("draw")$
360 (%i2) draw2d(ytics = false,
361              explicit(exp(u),u,-2,2),
362              xtics = false)$
363 @end example
365 Veja também @code{xtics}, e @code{ztics}.
366 @end defvr
370 @defvr {Opção gráfica} ztics
371 Valor padrão: @code{true}
373 Se @code{ztics} for @code{true}, a marcação numérica será feitas sobre o eixo @var{z}.
375 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
376 não é importante.
378 Exemplo:
380 @example
381 (%i1) load("draw")$
382 (%i2) /* No tics in the z-axis */
383       draw3d(ztics = false,
384              explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
385 @end example
387 Veja também @code{xtics}, e @code{ytics}.
388 @end defvr
392 @defvr {Opção gráfica} rot_vertical
393 Valor padrão: 60
395 @code{rot_vertical} é o ângulo (em graus) da rotação vertical (em torno 
396 do eixo @var{x}) para escolher o ponto de visualização em fundos gráficos tridimensionais.
398 O ângulo é associado ao intervalo @math{[0, 180]}.
400 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
401 não é importante.
403 Exemplo:
405 @example
406 (%i1) load("draw")$
407 (%i2) draw3d(rot_vertical = 170,
408              explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
409 @end example
411 Veja também @code{rot_horizontal}.
412 @end defvr
416 @defvr {Opção gráfica} rot_horizontal
417 Valor padrão: 30
419 @code{rot_horizontal} é o ângulo (em graus) da rotação horizontal (em torno 
420 do eixo @var{z})  para escolher o ponto de visualização em fundos gráficos tridimensionais.
422 O ângulo é associado ao intervalo @math{[0, 180]}.
424 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
425 não é importante.
427 Exemplo:
429 @example
430 (%i1) load("draw")$
431 (%i2) draw3d(rot_vertical = 170,
432              rot_horizontal = 360,
433              explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
434 @end example
436 Veja também @code{rot_vertical}.
437 @end defvr
441 @defvr {Opção gráfica} xy_file
442 Valor padrão: @code{""} (a seq@"{u}ência de caracteres vazia)
444 @code{xy_file} é o nome do arquivo onde as coordenada serão armazenadas
445 após um clique com o botão do mouse e pressionar a tecla 'x'. Por padrão,
446 nenhuma coordenada é armazenada.
448 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
449 não é importante.
450 @end defvr
454 @defvr {Opção gráfica} user_preamble
455 Valor padrão: @code{""} (a seq@"{u}ência de caracteres vazia)
457 Usuários experientes de Gnuplot podem fazer uso dessa opção para ajuste fino do comportamento
458 do Gnuplot escolhendo opções para serem enviadas antes do comando @code{plot} ou do
459 comando @code{splot}.
461 O valor dessa opção deve ser uma seq@"uência de caracteres ou uma lista de seq@"uência de caracteres (um por linha).
463 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
464 não é importante.
466 Exemplo:
468 O terminal @i{dumb} não é suportado pelo pacote @code{draw},
469 mas é possível escolher o terminal @i{dumb} fazendo uso da opção @code{user_preamble},
470 @example
471 (%i1) load("draw")$
472 (%i2) draw2d(explicit(exp(x)-1,x,-1,1),
473              parametric(cos(u),sin(u),u,0,2*%pi),
474              user_preamble="set terminal dumb")$
475 @end example
476 @end defvr
480 @defvr {Opção gráfica} file_name
481 Valor padrão: @code{"maxima_out"}
483 Esse é o nome do arquivo onde os terminais @code{png}, @code{jpg}, @code{eps}
484 e @code{eps_color} guardarão o gráfico.
486 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
487 não é importante. Pode também ser usada como um argumento da função @code{draw}.
489 Exemplo:
491 @example
492 (%i1) load("draw")$
493 (%i2) draw2d(file_name = "myfile",
494              explicit(x^2,x,-1,1),
495              terminal  = 'png)$
496 @end example
498 Veja também @code{terminal}, @code{pic_width}, e @code{pic_height}.
499 @end defvr
503 @defvr {Opção gráfica} pic_width
504 Valor padrão: 640
506 Essa é a largura do arquivo de bitmap gerado pelos terminais @code{png} e @code{jpg}.
508 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
509 não é importante. Pode também ser usada como um argumento da função @code{draw}.
511 Exemplo:
513 @example
514 (%i1) load("draw")$
515 (%i2) draw2d(terminal   = 'png,
516              pic_width  = 300,
517              pic_height = 300,
518              explicit(x^2,x,-1,1))$
519 @end example
521 Veja também @code{terminal}, @code{file_name}, e @code{pic_height}.
522 @end defvr
526 @defvr {Opção gráfica} pic_height
527 Valor padrão: 640
529 Essa é a altura do arquivo de bitmap gerado pelos terminais @code{png} e @code{jpg}.
531 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
532 não é importante. Pode também ser usada como um argumento da função @code{draw}.
534 Exemplo:
536 @example
537 (%i1) load("draw")$
538 (%i2) draw2d(terminal   = 'png,
539              pic_width  = 300,
540              pic_height = 300,
541              explicit(x^2,x,-1,1))$
542 @end example
544 Veja também @code{terminal}, @code{file_name}, e @code{pic_width}.
545 @end defvr
548 @defvr {Opção gráfica} eps_width
549 Valor padrão: 12
551 Essa é a largura (medida em cm) do arquivo Postscript
552 gerado pelos terminais @code{eps} e @code{eps_color}.
554 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo gráfico
555 não é importante. Pode também ser usada como um argumento da função @code{draw}.
557 Exemplo:
559 @example
560 (%i1) load("draw")$
561 (%i2) draw2d(terminal   = 'eps,
562              eps_width  = 3,
563              eps_height = 3,
564              explicit(x^2,x,-1,1))$
565 @end example
567 Veja também @code{terminal}, @code{file_name}, e @code{eps_height}.
568 @end defvr
572 @defvr {Opção gráfica} eps_height
573 Valor padrão: 8
575 Essa é a altura (medida em cm) do arquivo Postscript
576 gerado pelos terminais @code{eps} e @code{eps_color}.
578 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo gráfico
579 não é importante. Pode também ser usada como um argumento da função @code{draw}.
581 Exemplo:
583 @example
584 (%i1) load("draw")$
585 (%i2) draw2d(terminal   = 'eps,
586              eps_width  = 3,
587              eps_height = 3,
588              explicit(x^2,x,-1,1))$
589 @end example
591 Veja também @code{terminal}, @code{file_name}, e @code{eps_width}.
592 @end defvr
596 @defvr {Opção gráfica} axis_bottom
597 Valor padrão: @code{true}
599 Se @code{axis_bottom} for @code{true}, o eixo inferior é mostrado em fundos gráficos bidimensionais.
601 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
602 não é importante.
604 Exemplo:
606 @example
607 (%i1) load("draw")$
608 (%i2) draw2d(axis_bottom = false,
609              explicit(x^3,x,-1,1))$
610 @end example
612 Veja também @code{axis_left},  @code{axis_top}, @code{axis_right}, e @code{axis_3d}.
613 @end defvr
617 @defvr {Opção gráfica} axis_left
618 Valor padrão: @code{true}
620 Se @code{axis_left} for @code{true}, o eixo da esquerda é mostrado em fundos gráficos bidimensionais.
622 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
623 não é importante.
625 Exemplo:
627 @example
628 (%i1) load("draw")$
629 (%i2) draw2d(axis_left = false,
630              explicit(x^3,x,-1,1))$
631 @end example
633 Veja também @code{axis_bottom},  @code{axis_top}, @code{axis_right}, e @code{axis_3d}.
634 @end defvr
638 @defvr {Opção gráfica} axis_top
639 Valor padrão: @code{true}
641 Se @code{axis_top} for @code{true}, o eixo superior é mostrado em fundos gráficos bidimensionais.
643 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
644 não é importante.
646 Exemplo:
648 @example
649 (%i1) load("draw")$
650 (%i2) draw2d(axis_top = false,
651              explicit(x^3,x,-1,1))$
652 @end example
654 Veja também @code{axis_bottom},  @code{axis_left}, @code{axis_right}, e @code{axis_3d}.
655 @end defvr
659 @defvr {Opção gráfica} axis_right
660 Valor padrão: @code{true}
662 Se @code{axis_right} for @code{true}, o eixo da direita é mostrado em fundos gráficos bidimensionais.
664 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
665 não é importante.
667 Exemplo:
669 @example
670 (%i1) load("draw")$
671 (%i2) draw2d(axis_right = false,
672              explicit(x^3,x,-1,1))$
673 @end example
675 Veja também @code{axis_bottom},  @code{axis_left}, @code{axis_top}, e @code{axis_3d}.
676 @end defvr
680 @defvr {Opção gráfica} axis_3d
681 Valor padrão: @code{true}
683 Se @code{axis_3d} for @code{true}, os eixos @var{x}, @var{y} e @var{z} são mostrados em fundos gráficos tridimensionais.
685 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
686 não é importante.
688 Exemplo:
690 @example
691 (%i1) load("draw")$
692 (%i2) draw3d(axis_3d = false,
693              explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
694 @end example
696 Veja também @code{axis_bottom},  @code{axis_left}, @code{axis_top}, e @code{axis_right} para eixos em duas dimensões.
697 @end defvr
702 @defvr {Opção gráfica} palette
703 Valor padrão: @code{color}
705 @code{palette} indica como mapear os valores reais de uma matriz
706 passada para o objeto @code{image} sobre componentes de cor.
708 @code{palette} é um vetor comprimento três com componentes 
709 variando de -36 a +36; cada valor é um índice para uma fórmula mapeando os níveis
710 sobre as cores vermelho, verde e blue, respectivamente:
711 @example
712  0: 0               1: 0.5           2: 1
713  3: x               4: x^2           5: x^3
714  6: x^4             7: sqrt(x)       8: sqrt(sqrt(x))
715  9: sin(90x)       10: cos(90x)     11: |x-0.5|
716 12: (2x-1)^2       13: sin(180x)    14: |cos(180x)|
717 15: sin(360x)      16: cos(360x)    17: |sin(360x)|
718 18: |cos(360x)|    19: |sin(720x)|  20: |cos(720x)|
719 21: 3x             22: 3x-1         23: 3x-2
720 24: |3x-1|         25: |3x-2|       26: (3x-1)/2
721 27: (3x-2)/2       28: |(3x-1)/2|   29: |(3x-2)/2|
722 30: x/0.32-0.78125 31: 2*x-0.84     32: 4x;1;-2x+1.84;x/0.08-11.5
723 33: |2*x - 0.5|    34: 2*x          35: 2*x - 0.5
724 36: 2*x - 1
725 @end example
726 números negativos significam componentes negativos de cores.
728 @code{palette = gray} and @code{palette = color} are short cuts for
729 @code{palette = [3,3,3]} and @code{palette = [7,5,15]}, respectively.
731 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo do gráfico
732 não é importante.
734 Exemplos:
736 @example
737 (%i1) load("draw")$
738 (%i2) im: apply(
739            'matrix,
740             makelist(makelist(random(200),i,1,30),i,1,30))$
741 (%i3) /* palette = color, default */
742       draw2d(image(im,0,0,30,30))$
743 (%i4) draw2d(palette = gray, image(im,0,0,30,30))$
744 (%i5) draw2d(palette = [15,20,-4],
745              colorbox=false,
746              image(im,0,0,30,30))$
747 @end example
749 Veja também @code{colorbox}. 
750 @end defvr
755 @defvr {Opção gráfica} colorbox
756 Valor padrão: @code{true}
758 If @code{colorbox} is @code{true}, a color scale is drawn together with
759 @code{image} objects.
761 Since this is a global graphics option, its position in the scene description
762 does not matter.
764 Exemplo:
766 @example
767 (%i1) load("draw")$
768 (%i2) im: apply('matrix,
769                  makelist(makelist(random(200),i,1,30),i,1,30))$
770 (%i3) draw2d(image(im,0,0,30,30))$
771 (%i4) draw2d(colorbox=false, image(im,0,0,30,30))$
772 @end example
774 Veja também @code{palette}.
775 @end defvr
779 @defvr {Opção gráfica} enhanced3d
780 Valor padrão: @code{false}
782 Se @code{enhanced3d} for @code{true}, superfícies são coloridas em gráficos tridimensionais;
783 em outras palavras, pode escolher o modo pm3d do Gnuplot.
785 Veja a opção @code{palette} para aprender como paletas são especificadas.
787 Exemplo:
789 @example
790 (%i1) load("draw")$
791 (%i2) draw3d(surface_hide = true,
792              enhanced3d   = true,
793              palette      = gray,
794              explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$
795 @end example
796 @end defvr
800 @defvr {Opção gráfica} point_size
801 Valor padrão: 1
803 @code{point_size} escolhe o tamanho para os pontos do gráfico. Esse valor deve ser um
804 número não negativo.
806 Essa opção afeta os seguintes objetos gráficos:
807 @itemize @bullet
808 @item
809 @code{gr2d}: @code{points}.
811 @item
812 @code{gr3d}: @code{points}.
813 @end itemize
815 Exemplo:
817 @example
818 (%i1) load("draw")$
819 (%i2) draw2d(points(makelist([random(20),random(50)],k,1,10)),
820              point_size = 5,
821              points(makelist(k,k,1,20),makelist(random(30),k,1,20)))$
822 @end example
823 @end defvr
827 @defvr {Opção gráfica} point_type
828 Valor padrão: 1
830 @code{point_type} indica como pontos isolados são mostrados; o valor dessa
831 opção pode ser qualquer índice inteiro maior que ou igual a -1, ou o nome de
832 um estilo de ponto: @code{$none} (-1), @code{dot} (0), @code{plus} (1), @code{multiply} (2),
833 @code{asterisk} (3), @code{square} (4), @code{filled_square} (5), @code{circle} (6),
834 @code{filled_circle} (7), @code{up_triangle} (8), @code{filled_up_triangle} (9),
835 @code{down_triangle} (10), @code{filled_down_triangle} (11), @code{diamant} (12) e
836 @code{filled_diamant} (13).
838 Essa opção afeta os seguintes objetos gráficos:
839 @itemize @bullet
840 @item
841 @code{gr2d}: @code{points}.
843 @item
844 @code{gr3d}: @code{points}.
845 @end itemize
847 Exemplo:
849 @example
850 (%i1) load("draw")$
851 (%i2) draw2d(xrange = [0,10],
852              yrange = [0,10],
853              point_size = 3,
854              point_type = 1,
855              points([[1,1],[5,1],[9,1]]),
856              point_type = 2,
857              points([[1,2],[5,2],[9,2]]),
858              point_type = asterisk,
859              points([[1,3],[5,3],[9,3]]),
860              point_type = 4,
861              points([[1,4],[5,4],[9,4]]),
862              point_type = 5,
863              points([[1,5],[5,5],[9,5]]),
864              point_type = 6,
865              points([[1,6],[5,6],[9,6]]),
866              point_type = filled_circle,
867              points([[1,7],[5,7],[9,7]]),
868              point_type = 8,
869              points([[1,8],[5,8],[9,8]]),
870              point_type = filled_diamant,
871              points([[1,9],[5,9],[9,9]]) )$
872 @end example
873 @end defvr
877 @defvr {Opção gráfica} points_joined
878 Valor padrão: @code{false}
880 Se @code{points_joined} for @code{true}, pontos são unidos por linhas retas.
882 Essa opção afeta os seguintes objetos gráficos:
883 @itemize @bullet
884 @item
885 @code{gr2d}: @code{points}.
887 @item
888 @code{gr3d}: @code{points}.
889 @end itemize
891 Exemplo:
893 @example
894 (%i1) load("draw")$
895 (%i2) draw2d(xrange        = [0,10],
896              yrange        = [0,4],
897              point_size    = 3,
898              point_type    = 1,
899              line_type     = 3,
900              points([[1,1],[5,1],[9,1]]),
901              points_joined = true,
902              point_type    = 3,
903              line_type     = 5,
904              points([[1,2],[5,2],[9,2]]),
905              point_type    = 5,
906              line_type     = 8,
907              line_width    = 7,
908              points([[1,3],[5,3],[9,3]]) )$
909 @end example
910 @end defvr
914 @defvr {Opção gráfica} filled_func
915 Valor padrão: @code{false}
917 @code{filled_func} indica se uma função é preenchida (@code{true})
918 ou não (@code{false}).
920 Essa opção afeta somente objetos gráfico bidimensional @code{explicit}.
922 Exemplo:
924 @example
925 (%i1) load("draw")$
926 (%i2) draw2d(fill_color  = red,
927              filled_func = true,
928              explicit(sin(x),x,0,10) )$
929 @end example
931 Veja também @code{fill_color}.
932 @end defvr
936 @defvr {Opção gráfica} transparent
937 Valor padrão: @code{false}
939 Se @code{transparent} for @code{true}, regiões internas de poligonos são
940 preenchidas de acordo com @code{fill_color}.
942 Essa opção afeta os seguintes objetos gráficos:
943 @itemize @bullet
944 @item
945 @code{gr2d}: @code{polygon}, @code{rectangle}, e @code{ellipse}.
946 @end itemize
948 Exemplo:
950 @example
951 (%i1) load("draw")$
952 (%i2) draw2d(polygon([[3,2],[7,2],[5,5]]),
953              transparent = true,
954              color       = blue,
955              polygon([[5,2],[9,2],[7,5]]) )$
956 @end example
957 @end defvr
961 @defvr {Opção gráfica} border
962 Valor padrão: @code{true}
964 Se @code{border} for @code{true}, bordas de polígonos são colorizadas
965 de acordo com @code{line_type} e @code{line_width}.
967 Essa opção afeta os seguintes objetos gráficos:
968 @itemize @bullet
969 @item
970 @code{gr2d}: @code{polygon}, @code{rectangle}, e @code{ellipse}.
971 @end itemize
973 Exemplo:
975 @example
976 (%i1) load("draw")$
977 (%i2) draw2d(color       = brown,
978              line_width  = 8,
979              polygon([[3,2],[7,2],[5,5]]),
980              border      = false,
981              fill_color  = blue,
982              polygon([[5,2],[9,2],[7,5]]) )$
983 @end example
984 @end defvr
988 @defvr {Opção gráfica} head_both
989 Valor padrão: @code{false}
991 Se @code{head_both} for @code{true}, vetores são mostrados com seta dupla na ponta.
992 Se @code{false}, somente uma seta é mostrada.
994 Essa opção somente é relevante para objetos do tipo @code{vector}.
996 Exemplo:
998 @example
999 (%i1) load("draw")$
1000 (%i2) draw2d(xrange      = [0,8],
1001              yrange      = [0,8],
1002              head_length = 0.7,
1003              vector([1,1],[6,0]),
1004              head_both   = true,
1005              vector([1,7],[6,0]) )$
1006 @end example
1008 Veja também @code{head_length}, @code{head_angle}, e @code{head_type}. 
1009 @end defvr
1013 @defvr {Opção gráfica} head_length
1014 Valor padrão: 2
1016 @code{head_length} indica, em unidades do eixo @var{x}, o comprimento da ponta da seta do vetor.
1018 Essa opção é relevante somente para objetos do tipo @code{vector}.
1020 Exemplo:
1022 @example
1023 (%i1) load("draw")$
1024 (%i2) draw2d(xrange      = [0,12],
1025              yrange      = [0,8],
1026              vector([0,1],[5,5]),
1027              head_length = 1,
1028              vector([2,1],[5,5]),
1029              head_length = 0.5,
1030              vector([4,1],[5,5]),
1031              head_length = 0.25,
1032              vector([6,1],[5,5]))$
1033 @end example
1035 Veja também @code{head_both}, @code{head_angle}, e @code{head_type}. 
1036 @end defvr
1040 @defvr {Opção gráfica} head_angle
1041 Valor padrão: 45
1043 @code{head_angle} indica o ângulo, em graus, entre a ponta da seta do vetor e
1044 o segmento que forma o corpo do vetor.
1046 Essa opção é relevante somente para objetos do tipo @code{vector}.
1048 Exemplo:
1050 @example
1051 (%i1) load("draw")$
1052 (%i2) draw2d(xrange      = [0,10],
1053              yrange      = [0,9],
1054              head_length = 0.7,
1055              head_angle  = 10,
1056              vector([1,1],[0,6]),
1057              head_angle  = 20,
1058              vector([2,1],[0,6]),
1059              head_angle  = 30,
1060              vector([3,1],[0,6]),
1061              head_angle  = 40,
1062              vector([4,1],[0,6]),
1063              head_angle  = 60,
1064              vector([5,1],[0,6]),
1065              head_angle  = 90,
1066              vector([6,1],[0,6]),
1067              head_angle  = 120,
1068              vector([7,1],[0,6]),
1069              head_angle  = 160,
1070              vector([8,1],[0,6]),
1071              head_angle  = 180,
1072              vector([9,1],[0,6]) )$
1073 @end example
1075 Veja também @code{head_both}, @code{head_length}, e @code{head_type}. 
1076 @end defvr
1080 @defvr {Opção gráfica} head_type
1081 Valor padrão: @code{filled}
1083 @code{head_type} é usada para especificar como a ponta é mostrada. Valores
1084 possíveis são: @code{filled} (ponta fechada e preenchida), @code{empty}
1085 (ponta fechada mas não preenchida), e @code{nofilled} (ponta aberta).
1087 Essa opção é relevante somente para objetos do tipo @code{vector}.
1089 Exemplo:
1091 @example
1092 (%i1) load("draw")$
1093 (%i2) draw2d(xrange      = [0,12],
1094              yrange      = [0,10],
1095              head_length = 1,
1096              vector([0,1],[5,5]), /* default type */
1097              head_type = 'empty,
1098              vector([3,1],[5,5]),
1099              head_type = 'nofilled,
1100              vector([6,1],[5,5]))$
1101 @end example
1103 Veja também @code{head_both}, @code{head_angle}, e @code{head_length}. 
1104 @end defvr
1108 @defvr {Opção gráfica} label_alignment
1109 Valor padrão: @code{center}
1111 @code{label_alignment} é usado para especificar onde escrever rótulos com
1112 relação às coordenadas fornecidas. Valores possíveis são: @code{center},
1113 @code{left}, e @code{right}.
1115 Essa opção é relevante somente para objetos do tipo @code{label}.
1117 Exemplo:
1119 @example
1120 (%i1) load("draw")$
1121 (%i2) draw2d(xrange          = [0,10],
1122              yrange          = [0,10],
1123              points_joined   = true,
1124              points([[5,0],[5,10]]),
1125              color           = blue,
1126              label("Centered alignment (default)",5,2),
1127              label_alignment = 'left,
1128              label("Left alignment",5,5),
1129              label_alignment = 'right,
1130              label("Right alignment",5,8))$
1131 @end example
1133 Veja também @code{label_orientation}, e @code{color}. 
1134 @end defvr
1138 @defvr {Opção gráfica} label_orientation
1139 Valor padrão: @code{horizontal}
1141 @code{label_orientation} é usada para especificar a orientação dos rótulos.
1142 Valores possíveis são: @code{horizontal}, e @code{vertical}.
1144 Essa opção é relevante somente para objetos do tipo @code{label}.
1146 Exemplo:
1148 Nesse exemplo, um ponto fictício é adicionado para firmar uma imagem.
1149 o pacote @code{draw} precisa sempre de dados para montar um fundo.
1150 @example
1151 (%i1) load("draw")$
1152 (%i2) draw2d(xrange     = [0,10],
1153              yrange     = [0,10],
1154              point_size = 0,
1155              points([[5,5]]),
1156              color      = navy,
1157              label("Horizontal orientation (default)",5,2),
1158              label_orientation = 'vertical,
1159              color             = "#654321",
1160              label("Vertical orientation",1,5))$
1161 @end example
1163 Veja também @code{label_alignment}, e @code{color}. 
1164 @end defvr
1168 @defvr {Opção gráfica} color
1169 Valor padrão: @code{"black"}
1171 @code{color} especifica a cor para o desenho de linhas, pontos, bordas de
1172 polígonos e rótulos.
1174 Cores podem ser fornecidas como nomes ou em código hexadecimal @i{rgb}.
1176 Nomes de cores disponíveis atualmente são: 
1177 @code{"white"}, @code{"black"}, @code{"gray0"}, @code{"grey0"}, @code{"gray10"},
1178 @code{"grey10"}, @code{"gray20"}, @code{"grey20"}, @code{"gray30"}, @code{"grey30"},
1179 @code{"gray40"}, @code{"grey40"}, @code{"gray50"}, @code{"grey50"}, @code{"gray60"},
1180 @code{"grey60"}, @code{"gray70"}, @code{"grey70"}, @code{"gray80"}, @code{"grey80"},
1181 @code{"gray90"}, @code{"grey90"}, @code{"gray100"}, @code{"grey100"}, @code{"gray"},
1182 @code{"grey"}, @code{"light-gray"}, @code{"light-grey"}, @code{"dark-gray"},
1183 @code{"dark-grey"}, @code{"red"}, @code{"light-red"}, @code{"dark-red"}, @code{"yellow"},
1184 @code{"light-yellow"}, @code{"dark-yellow"}, @code{"green"}, @code{"light-green"},
1185 @code{"dark-green"}, @code{"spring-green"}, @code{"forest-green"}, @code{"sea-green"},
1186 @code{"blue"}, @code{"light-blue"}, @code{"dark-blue"}, @code{"midnight-blue"}, 
1187 @code{"navy"}, @code{"medium-blue"}, @code{"royalblue"}, @code{"skyblue"}, 
1188 @code{"cyan"}, @code{"light-cyan"}, @code{"dark-cyan"}, @code{"magenta"}, 
1189 @code{"light-magenta"}, @code{"dark-magenta"}, @code{"turquoise"}, 
1190 @code{"light-turquoise"}, @code{"dark-turquoise"}, @code{"pink"}, @code{"light-pink"},
1191 @code{"dark-pink"}, @code{"coral"}, @code{"light-coral"}, @code{"orange-red"},
1192 @code{"salmon"}, @code{"light-salmon"}, @code{"dark-salmon"}, @code{"aquamarine"},
1193 @code{"khaki"}, @code{"dark-khaki"}, @code{"goldenrod"}, @code{"light-goldenrod"},
1194 @code{"dark-goldenrod"}, @code{"gold"}, @code{"beige"}, @code{"brown"}, @code{"orange"},
1195 @code{"dark-orange"}, @code{"violet"}, @code{"dark-violet"}, @code{"plum"} and @code{"purple"}.
1197 Componentes cromáticos em código hexadecimal são introduzidos na forma @code{"#rrggbb"}.
1199 Exemplo:
1201 @example
1202 (%i1) load("draw")$
1203 (%i2) draw2d(explicit(x^2,x,-1,1), /* default is black */
1204              color = "red",
1205              explicit(0.5 + x^2,x,-1,1),
1206              color = blue,
1207              explicit(1 + x^2,x,-1,1),
1208              color = "light-blue", /* double quotes if - is used */
1209              explicit(1.5 + x^2,x,-1,1),
1210              color = "#23ab0f",
1211              label("Esse é um rótulo",0,1.2)  )$
1212 @end example
1214 Veja também @code{fill_color}.
1215 @end defvr
1219 @defvr {Opção gráfica} fill_color
1220 Valor padrão: @code{"red"}
1222 @code{fill_color} especifica a cor para preenchimento de polígonos e
1223 funções explicitamente bidimensionais.
1225 Veja @code{color} para aprender como cores são especificadas.
1226 @end defvr
1230 @defvr {Opção gráfica} line_width
1231 Valor padrão: 1
1233 @code{line_width} é a lagura das linhas do gráfico.
1234 Seu valor deve ser um número positivo.
1236 Essa opção afeta os seguintes objetos gráficos:
1237 @itemize @bullet
1238 @item
1239 @code{gr2d}: @code{points}, @code{polygon}, @code{rectangle}, 
1240 @code{ellipse}, @code{vector}, @code{explicit}, @code{implicit}, 
1241 @code{parametric} e @code{polar}.
1243 @item
1244 @code{gr3d}: @code{points} e @code{parametric}.
1245 @end itemize
1247 Exemplo:
1249 @example
1250 (%i1) load("draw")$
1251 (%i2) draw2d(explicit(x^2,x,-1,1), /* default width */
1252              line_width = 5.5,
1253              explicit(1 + x^2,x,-1,1),
1254              line_width = 10,
1255              explicit(2 + x^2,x,-1,1))$
1256 @end example
1258 Veja também @code{line_type}.
1259 @end defvr
1263 @defvr {Opção gráfica} line_type
1264 Valor padrão: @code{solid}
1266 @code{line_type} indica como linhas são mostradas; valores possíveis são
1267 @code{solid} e @code{dots}.
1269 Essa opção afeta os seguintes objetos gráficos:
1270 @itemize @bullet
1271 @item
1272 @code{gr2d}: @code{points}, @code{polygon}, @code{rectangle}, 
1273 @code{ellipse}, @code{vector}, @code{explicit}, @code{implicit}, 
1274 @code{parametric} e @code{polar}.
1276 @item
1277 @code{gr3d}: @code{points}, @code{explicit}, @code{parametric} e @code{parametric_surface}.
1278 @end itemize
1280 Exemplo:
1282 @example
1283 (%i1) load("draw")$
1284 (%i2) draw2d(line_type = dots,
1285              explicit(1 + x^2,x,-1,1),
1286              line_type = solid, /* default */
1287              explicit(2 + x^2,x,-1,1))$
1288 @end example
1290 Veja também @code{line_width}.
1291 @end defvr
1295 @defvr {Opção gráfica} nticks
1296 Valor padrão: 30
1298 @code{nticks} é o número de amostra de pontos usado pelas rotinas de montagem de gráfico.
1300 Essa opção afeta os seguintes objetos gráficos:
1301 @itemize @bullet
1302 @item
1303 @code{gr2d}: @code{ellipse}, @code{explicit}, @code{parametric} e @code{polar}.
1305 @item
1306 @code{gr3d}: @code{parametric}.
1307 @end itemize
1309 Exemplo:
1311 @example
1312 (%i1) load("draw")$
1313 (%i2) draw2d(transparent = true,
1314              ellipse(0,0,4,2,0,180),
1315              nticks = 5,
1316              ellipse(0,0,4,2,180,180) )$
1317 @end example
1318 @end defvr
1322 @defvr {Opção gráfica} adapt_depth
1323 Valor padrão: 10
1325 @code{adapt_depth} é o número máximo de quebras usado pelas rotinas adaptativos de impressão.
1327 Essa opção é relevante somente para funções 2d @code{explicitas}.
1328 @end defvr
1332 @defvr {Opção gráfica} key
1333 Valor padrão: @code{""} (a seq@"{u}ência de caracteres vazia)
1335 @code{key} é o nome de uma função na legenda. Se @code{key} é uma
1336 seq@"{u}ência de caracteres vazia, nenhuma chave é atribuída à função.
1338 Essa opção afeta os seguintes objetos gráficos:
1339 @itemize @bullet
1340 @item
1341 @code{gr2d}: @code{points}, @code{polygon}, @code{rectangle},
1342 @code{ellipse}, @code{vector}, @code{explicit}, @code{implicit},
1343 @code{parametric}, e @code{polar}.
1345 @item
1346 @code{gr3d}: @code{points}, @code{explicit}, @code{parametric},
1347 e @code{parametric_surface}.
1348 @end itemize
1350 Exemplo:
1352 @example
1353 (%i1) load("draw")$
1354 (%i2) draw2d(key = "Seno",
1355              explicit(sin(x),x,0,10),
1356              key = "Cosseno",
1357              line_type = 3,
1358              explicit(cos(x),x,0,10) )$
1359 @end example
1360 @end defvr
1364 @defvr {Opção gráfica} xu_grid
1365 Valor padrão: 30
1367 @code{xu_grid} é o número de coordenadas da primeira variável
1368 (@code{x} na forma explícita e o número de coordenadas de @code{u} em superfícies tridimensionais na forma paramétrica) para 
1369 contruir a grade dos pontos de amostra.
1371 Essa opção afeta os seguintes objetos gráficos:
1372 @itemize @bullet
1373 @item
1374 @code{gr3d}: @code{explicit} e @code{parametric_surface}.
1375 @end itemize
1377 Exemplo:
1379 @example
1380 (%i1) load("draw")$
1381 (%i2) draw3d(xu_grid = 10,
1382              yv_grid = 50,
1383              explicit(x^2+y^2,x,-3,3,y,-3,3) )$
1384 @end example
1386 Veja também @code{yv_grid}.
1387 @end defvr
1391 @defvr {Opção gráfica} yv_grid
1392 Valor padrão: 30
1394 @code{yv_grid} é o número de coordenadas da segunda variável
1395 (@code{y} na forma explícita e o número de coordenadas de @code{v} em superfícies tridimensionais na forma paramétrica) para 
1396 construir a grade dos pontos de amostra.
1398 Essa opção afeta os seguintes objetos gráficos:
1399 @itemize @bullet
1400 @item
1401 @code{gr3d}: @code{explicit} e @code{parametric_surface}.
1402 @end itemize
1404 Exemplo:
1406 @example
1407 (%i1) load("draw")$
1408 (%i2) draw3d(xu_grid = 10,
1409              yv_grid = 50,
1410              explicit(x^2+y^2,x,-3,3,y,-3,3) )$
1411 @end example
1413 Veja também @code{xu_grid}.
1414 @end defvr
1418 @defvr {Opção gráfica} surface_hide
1419 Valor padrão: @code{false}
1421 Se @code{surface_hide} for @code{true}, partes escondidas não são mostradas no gráfico em superfícies tridimensioais.
1423 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
1424 não é importante.
1426 Exemplo:
1428 @example
1429 (%i1) load("draw")$
1430 (%i2) draw(columns=2,
1431            gr3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3)),
1432            gr3d(surface_hide = true,
1433                 explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3)) )$
1434 @end example
1435 @end defvr
1439 @defvr {Opção gráfica} contour
1440 Valor padrão: @code{none}
1442 Option @code{contour} torna o usuário capaz de selecionar onde imprimir linhas de contorno.
1443 Valores possíveis são:
1445 @itemize @bullet
1447 @item
1448 @code{none}:
1449 nenhuma linha de contorno é mostrada.
1451 @item
1452 @code{base}:
1453 linhas de contorno são projetadas no plano xy.
1455 @item
1456 @code{surface}:
1457 linhas de contorno são mostradas sobre a superfície.
1459 @item
1460 @code{both}:
1461 duas linhas de contorno são mostradas: no plano xy e sobre a superfície.
1463 @item
1464 @code{map}:
1465 linhas de contorno são projetadas sobre o plano xy, e o ponto de boservação é
1466 escolhido na vertical.
1468 @end itemize
1470 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
1471 não é importante.
1473 Exemplo:
1475 @example
1476 (%i1) load("draw")$
1477 (%i2) draw3d(explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
1478              contour_levels = 15,
1479              contour        = both,
1480              surface_hide   = true) $
1481 @end example
1482 @end defvr
1486 @defvr {Opção gráfica} contour_levels
1487 Valor padrão: 5
1489 @code{contour_levels} é o número de níveis em gráficos de contorno.
1491 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
1492 não é importante.
1494 Exemplo:
1496 @example
1497 (%i1) load("draw")$
1498 (%i2) draw3d(explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
1499              contour_levels = 15,
1500              contour        = both,
1501              surface_hide   = true) $
1502 @end example
1503 @end defvr
1507 @defvr {Opção gráfica} columns
1508 Valor padrão: 1
1510 @code{columns} é o número de colunas em gráficos multiplos.
1512 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo do gráfico
1513 não é importante. Pode também ser usado como um argumento da função @code{draw}.
1515 Exemplo:
1517 @example
1518 (%i1) load("draw")$
1519 (%i2) scene1: gr2d(title="Elipse",
1520                    nticks=30,
1521                    parametric(2*cos(t),5*sin(t),t,0,2*%pi))$
1522 (%i3) scene2: gr2d(title="Triângulo",
1523                    polygon([4,5,7],[6,4,2]))$
1524 (%i4) draw(scene1, scene2, columns = 2)$
1525 @end example
1527 @end defvr
1531 @defvr {Opção gráfica} ip_grid
1532 Valor padrão: @code{[50, 50]}
1534 @code{ip_grid} escolhe a grade para a primeira amostragem em gráficos implícitos.
1536 Essa opção é relevante somente para @code{implicit} objects.
1537 @end defvr
1541 @defvr {Opção gráfica} ip_grid_in
1542 Valor padrão: @code{[5, 5]}
1544 @code{ip_grid_in} escolhe a grade para a segunda amostragem em gráficos implícitos.
1546 Essa opção é relevante somente para @code{implicit} objects.
1547 @end defvr
1557 @deffn {Construtor de fundo gráfico} gr2d (@var{opção gráfica}, ..., @var{objeto gráfico}, ...)
1559 A função @code{gr2d} constrói um objeto descrevendo um fundo gráfico em duas dimensões. Arguments are
1560 @i{opções gráficas} e @i{objetos gráficos}. Esse fundo gráfico é interpretado
1561 seq@"{u}êncialmente: @i{opções gráficas} afetam aqueles @i{objetos gráficos} colocados
1562 imediatamente à sua direita.
1564 Para fazer uso dessa função escreva primeiramente @code{load("draw")}.
1566 Adiante encontra-se uma lista de @i{objetos gráficos} disponívies para fundos gráficos em duas dimensões:
1568 @itemize @bullet
1569 @item
1570 @code{points([[x1,y1], [x2,y2], [x3,y3],...])} ou @code{points([x1,x2,x3,...], [y1,y2,y3,...])}:
1571 posiciona os pontos @code{[x1,y1]}, @code{[x2,y2]}, @code{[x2,y2]}, ... no gráfico.
1573 Esse objeto é efetado pelas seguintes @i{opções gráficas}: @code{point_size}, 
1574 @code{point_type}, @code{points_joined}, @code{line_width}, @code{key},
1575 @code{line_type} e @code{color}.
1577 Exemplo:
1579 @example
1580 (%i1) load("draw")$
1581 (%i2) draw2d(key           = "Small points",
1582              points(makelist([random(20),random(50)],k,1,10)),
1583              point_type    = 6,
1584              point_size    = 3,
1585              points_joined = true,
1586              key           = "Great points",
1587              points(makelist(k,k,1,20),makelist(random(30),k,1,20)))$
1588 @end example
1590 @item
1591 @code{polygon([[x1,y1], [x2,y2], [x3,y3],...])} ou @code{polygon([x1,x2,x3,...], [y1,y2,y3,...])}:
1592 desenha um polígono com vértices @code{[x1,y1]}, @code{[x2,y2]}, @code{[x2,y2]}, ... no plano.
1594 Esse objeto é afetado pelas seguintes @i{opçs gráficas}: @code{transparent}, 
1595 @code{fill_color}, @code{border}, @code{line_width}, @code{key},
1596 @code{line_type} @code{color}.
1598 Exemplo:
1600 @example
1601 (%i1) load("draw")$
1602 (%i2) draw2d(color      = "#e245f0",
1603              line_width = 8,
1604              polygon([[3,2],[7,2],[5,5]]),
1605              border      = false,
1606              fill_color  = yellow,
1607              polygon([[5,2],[9,2],[7,5]]) )$
1608 @end example
1612 @item
1613 @code{rectangle([x1,y1], [x2,y2])}:
1614 desenha um retângulo partindo do vértice @code{[x1,y1]} e terminando no vértice @code{[x2,y2]} oposto ao primeiro.
1616 Esse objeto é afetado pelas seguintes @i{opções gráficas}: @code{transparent}, 
1617 @code{fill_color}, @code{border}, @code{line_width}, @code{key},
1618 @code{line_type} e @code{color}.
1620 Exemplo:
1622 @example
1623 (%i1) load("draw")$
1624 (%i2) draw2d(fill_color  = red,
1625              line_width  = 6,
1626              line_type   = dots,
1627              transparent = false,
1628              fill_color   = blue,
1629              rectangle([-2,-2],[8,-1]),   /* opposite vertices */
1630              transparent = true,
1631              line_type   = solid,
1632              line_width  = 1,
1633              rectangle([9,4],[2,-1.5]),
1634              xrange      = [-3,10],
1635              yrange      = [-3,4.5] )$
1636 @end example
1639 @item
1640 @code{ellipse(xc, yc, a, b, ang1, ang2)}:
1641 desenha uma elipse com centro em @code{[xc, yc]} com semi-eixo maior @code{a} e
1642 semi-eixo menor @code{b} traçando um arco de elipse que se inicia no ângulo @code{ang1} e que vai
1643 até o ângulo @code{ang2}.
1644 semi axis @code{a} e @code{b}, respectively, from angle @code{ang1} to angle
1645 @code{ang2}.
1647 Esse objeto é afetado pelas seguintes @i{opções gráficas}: @code{nticks}, 
1648 @code{transparent}, @code{fill_color}, @code{border}, @code{line_width}, 
1649 @code{line_type}, @code{key} e @code{color}.
1651 Exemplo:
1653 @example
1654 (%i1) load("draw")$
1655 (%i2) draw2d(transparent = false,
1656              fill_color  = 8,
1657              color       = gray30,
1658              transparent = false,
1659              line_width  = 5,
1660              ellipse(0,6,3,2,270,-270),  /* center (x,y), a, b, start & end in degrees */
1661              transparent = true,
1662              color       = blue,
1663              line_width  = 3,
1664              ellipse(2.5,6,2,3,30,-90),
1665              xrange      = [-3,6],
1666              yrange      = [2,9] )$
1667 @end example
1670 @item
1671 @code{label(rótulo,x,y)}:
1672 escreve o @code{rótulo} no ponto @code{[x,y]}.
1674 Esse objeto é afetado pelas seguintes @i{opções gráficas}: @code{label_alignment}, 
1675 @code{label_orientation} e @code{color}.
1677 Exemplo:
1679 Nesse exemplo, um ponto imaginário é adicionado para firmar a imagem.
1680 O pacote @code{draw} precisa sempre da dados para desenhar um fundo.
1681 Essas cores podem mudar em diferentes terminais.
1682 @example
1683 (%i1) load("draw")$
1684 (%i2) draw2d(explicit(x^2,x,-1,1),
1685              color = "red",
1686              label("Label in red",0,0.3),
1687              color = "#0000ff",
1688              label("Label in blue",0,0.6),
1689              color = "light-blue", /* double quotes if - is used */
1690              label("Rótulo em light-blue",0,0.9)  )$
1691 @end example
1694 @item
1695 @code{vector([x,y], [dx,dy])}:
1696 desenha um vetor de componentes ortogonais @code{[dx,dy]} com orígem eno ponto @code{[x,y]}.
1698 Esse objeto é afetado pelas seguintes @i{opções gráficas}: @code{head_both}, 
1699 @code{head_length}, @code{head_angle}, @code{head_type}, @code{line_width}, 
1700 @code{line_type} e @code{key}.
1702 Exemplo:
1704 @example
1705 (%i1) load("draw")$
1706 (%i2) draw2d(xrange      = [0,12],
1707              yrange      = [0,10],
1708              head_length = 1,
1709              vector([0,1],[5,5]), /* default type */
1710              head_type = 'empty,
1711              vector([3,1],[5,5]),
1712              head_both = true,
1713              head_type = 'nofilled,
1714              line_type = dots,
1715              vector([6,1],[5,5]))$
1716 @end example
1719 @item
1720 @code{explicit(fcn,var,minval,maxval)}:
1721 monta o gráfico da função explícita @code{fcn}, com variável @code{var} assumindo valores
1722 de @code{minval} a @code{maxval}.
1724 Esse objeto é afetado pelas seguintes @i{opções gráficas}: @code{nticks}, 
1725 @code{adapt_depth}, @code{line_width}, @code{line_type}, @code{key},
1726 @code{filled_func}, @code{fill_color} e @code{color}.
1728 Exemplo:
1730 @example
1731 (%i1) load("draw")$
1732 (%i2) draw2d(line_width = 3,
1733              color      = blue,
1734              explicit(x^2,x,-3,3) )$
1735 (%i3) draw2d(fill_color  = brown,
1736              filled_func = true,
1737              explicit(x^2,x,-3,3) )$
1738 @end example
1741 @item
1742 @code{implicit(fcn,x-var,x-minval,x-maxval,y-var,y-minval,y-maxval)}:
1743 monta o gráfico da função implícita definida por @code{fcn}, com variável @code{x-var} assumindo
1744 de @code{x-minval} a @code{x-maxval}, e variável @code{y-var} assumindo valores
1745 de @code{y-minval} a @code{y-maxval}.
1747 Esse objeto é afetado pelas seguintes @i{opções gráficas}: @code{ip_grid}, 
1748 @code{ip_grid_in}, @code{line_width}, @code{line_type}, @code{key} e @code{color}.
1750 Exemplo:
1752 @example
1753 (%i1) load("draw")$
1754 (%i2) draw2d(terminal  = eps,
1755              grid      = true,
1756              line_type = solid,
1757              key       = "y^2=x^3-2*x+1",
1758              implicit(y^2=x^3-2*x+1, x, -4,4, y, -4,4),
1759              line_type = dots,
1760              key       = "x^3+y^3 = 3*x*y^2-x-1",
1761              implicit(x^3+y^3 = 3*x*y^2-x-1, x, -4,4, y, -4,4),
1762              title     = "Duas funções implícitas" )$
1763 @end example
1765 @item
1766 @code{polar(radius,ang,minang,maxang)}:
1767 plots function @code{radius(ang)} defined in polar coordinates, com a variável @code{ang}
1768 assumindo valores de @code{minang} a @code{maxang}.
1770 Esse objeto é afetado pelas seguintes @i{opções gráficas}: @code{nticks}, 
1771 @code{line_width}, @code{line_type}, @code{key} e @code{color}.
1774 Exemplo:
1776 @example
1777 (%i1) load("draw")$
1778 (%i2) draw2d(user_preamble = "set grid polar",
1779              nticks        = 200,
1780              xrange        = [-5,5],
1781              yrange        = [-5,5],
1782              line_type     = 6,
1783              line_width    = 3,
1784              title         = "Hyperbolic Spiral",
1785              polar(10/theta,theta,1,10*%pi) )$
1786 @end example
1789 @item
1790 @code{parametric(xfun,yfun,par,parmin,parmax)}:
1791 monta o gráfico da função paramétrica @code{[xfun,yfun]}, com parâmetro @code{par}
1792 assumindo valores de @code{parmin} a @code{parmax}.
1794 Esse objeto é afetado pelas seguintes @i{opções gráficas}: @code{nticks}, 
1795 @code{line_width}, @code{line_type}, @code{key} e @code{color}.
1797 Exemplo:
1799 @example
1800 (%i1) load("draw")$
1801 (%i2) draw2d(explicit(exp(x),x,-1,3),
1802              color = red,
1803              key   = "Esse é a unidade paramétrica!!",
1804              parametric(2*cos(rrr),rrr^2,rrr,0,2*%pi))$
1805 @end example
1811 @item
1812 @code{image(im,x0,y0,width,height)}:
1813 monta o gráfico da imágem @code{im} em uma região retangular do vértice @code{(x0,y0)} ao vértice
1814 @code{(x0+width,y0+height)} no plano real. O argumeto @code{im} deve ser uma
1815 matriz de números reais, ou uma matriz de vetores de comprimento três.
1817 Se @code{im} for uma matriz de números reais, valores de pixel são interpretados conforme
1818 a opção gráfica @code{palette}, que é um vetor de comprimento três com componentes
1819 numéricas variando de -36 a +36; cada valor é um índice para uma fórmula mapeando os níveis
1820 sobre as cores vermelha, verde e azul, respectivamente:
1821 @example
1822  0: 0               1: 0.5           2: 1
1823  3: x               4: x^2           5: x^3
1824  6: x^4             7: sqrt(x)       8: sqrt(sqrt(x))
1825  9: sin(90x)       10: cos(90x)     11: |x-0.5|
1826 12: (2x-1)^2       13: sin(180x)    14: |cos(180x)|
1827 15: sin(360x)      16: cos(360x)    17: |sin(360x)|
1828 18: |cos(360x)|    19: |sin(720x)|  20: |cos(720x)|
1829 21: 3x             22: 3x-1         23: 3x-2
1830 24: |3x-1|         25: |3x-2|       26: (3x-1)/2
1831 27: (3x-2)/2       28: |(3x-1)/2|   29: |(3x-2)/2|
1832 30: x/0.32-0.78125 31: 2*x-0.84     32: 4x;1;-2x+1.84;x/0.08-11.5
1833 33: |2*x - 0.5|    34: 2*x          35: 2*x - 0.5
1834 36: 2*x - 1
1835 @end example
1836 números negativos significam componente de cor negativa.
1838 @code{palette = gray} e @code{palette = color} são atalhos para
1839 @code{palette = [3,3,3]} e @code{palette = [7,5,15]}, respectivamente.
1841 Se @code{im} for uma matriz de vetores de comprimento três, eles são interpretados
1842 como componenetes das cores vermelho, verde e azul.
1844 Exemplos:
1846 se @code{im} for uma matriz de números reais, valores de pixel são interpretados conforme
1847 a opção gráfica @code{palette}.
1848 @example
1849 (%i1) load("draw")$
1850 (%i2) im: apply(
1851            'matrix,
1852             makelist(makelist(random(200),i,1,30),i,1,30))$
1853 (%i3) /* palette = color, default */
1854       draw2d(image(im,0,0,30,30))$
1855 (%i4) draw2d(palette = gray, image(im,0,0,30,30))$
1856 (%i5) draw2d(palette = [15,20,-4],
1857              colorbox=false,
1858              image(im,0,0,30,30))$
1859 @end example
1861 Veja também @code{colorbox}.
1863 Se @code{im} for uma matriz de vetores de comprimento três, eles são interpretados
1864 como componentes da cores vermelho, verde e azul.
1865 @example
1866 (%i1) load("draw")$
1867 (%i2) im: apply(
1868             'matrix,
1869              makelist(
1870                makelist([random(300),
1871                          random(300),
1872                          random(300)],i,1,30),i,1,30))$
1873 (%i3) draw2d(image(im,0,0,30,30))$
1874 @end example
1876 @end itemize
1878 Veja também as seguintes opções gráficas: @code{xrange}, @code{yrange}, 
1879 @code{logx}, @code{logy}, @code{terminal}, @code{grid}, @code{title}, 
1880 @code{xlabel}, @code{ylabel}, @code{xtics}, @code{ytics}, @code{xy_file}, 
1881 @code{file_name}, @code{pic_width}, @code{pic_height}, 
1882 @code{eps_width}, @code{eps_height},
1883 @code{user_preamble}, @code{axis_bottom}, @code{axis_left}, @code{axis_top}, 
1884 e @code{axis_right}.
1886 @end deffn
1896 @deffn {Scene constructor} gr3d (@var{opção gráfica}, ..., @var{objeto gráfico}, ...)
1898 A função @code{gr3d} constrói um objeto descrevendo um fundo gráfico tridimensional. Argumentos são
1899 @i{opções gráficas} e @i{objetos gráficos}. Esse fundo gráfico é interpretado
1900 seq@"{u}êncialmente: @i{opções gráficas} afetam aqueles @i{objetos gráficos} colocados
1901 imediatamente à sua direita.
1903 Para fazer uso dessa função escreva primeiramente @code{load("draw")}.
1905 Essa é a lista dos @i{objetos gráficos} disponíveis para fundos gráficos tridimensionais:
1907 @itemize @bullet
1908 @item
1909 @code{points([[x1,y1,z1], [x2,y2,z2], [x3,y3,z3],...])} ou 
1910 @code{points([x1,x2,x3,...], [y1,y2,y3,...], [z1,z2,z3,...])}:
1911 posiciona os pontos @code{[x1,y1,z1]}, @code{[x2,y2,z2]}, @code{[x2,y2,z3]}, ... no gráfico.
1913 Esse objeto é afetado pelas seguintes @i{opções gráficas}: @code{point_size}, 
1914 @code{point_type}, @code{points_joined}, @code{line_width}, @code{key}, @code{line_type}
1915 e @code{color}.
1917 Exemplos:
1919 Uma amostra tridimensional,
1920 @example
1921 (%i1) load("draw")$
1922 (%i2) load ("numericalio")$
1923 (%i3) s2 : read_matrix (file_search ("wind.data"))$
1924 (%i4) draw3d(title      = "Velocidades diárias de ventos disponíveis",
1925              point_size = 2,
1926              points(args(submatrix (s2, 4, 5))) )$
1927 @end example
1929 Duas amostras tridimensionais,
1930 @example
1931 (%i1) load("draw")$
1932 (%i2) load ("numericalio")$
1933 (%i3) s2 : read_matrix (file_search ("wind.data"))$
1934 (%i4) draw3d(title      = "Velocidades diárias de ventos disponíveis. Dois conjuntos de dados",
1935              point_size = 2,
1936              key        = "Amostras das estações 1, 2 e 3",
1937              points(args(submatrix (s2, 4, 5))),
1938              point_type = 4,
1939              key        = "Amostras das estações 1, 4 e 5",
1940              points(args(submatrix (s2, 2, 3))) )$
1941 @end example
1944 @item
1945 @code{label(rótulo,x,y,z)}:
1946 escreve @code{rótulo} no ponto @code{[x,y,z]}.
1948 Esse objeto é afetado pelas seguintes @i{opções gráficas}: @code{label_alignment}, 
1949 @code{label_orientation} e @code{color}.
1951 Exemplo:
1953 @example
1954 (%i1) load("draw")$
1955 (%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3),
1956              color = red,
1957              label("SUBINDO",-2,0,3),
1958              color = blue,
1959              label("DESCENDO",2,0,-3) )$
1960 @end example
1965 @item
1966 @code{vector([x,y,z], [dx,dy,dz])}:
1967 monta o gráfico do vetor @code{[dx,dy,dz]} com orígem em @code{[x,y,z]}.
1969 Esse objeto é afetado pelas seguintes @i{opções gráficas}: @code{head_both}, 
1970 @code{head_type}, @code{line_width}, 
1971 @code{line_type}, @code{key} e @code{color}.
1973 Exemplo:
1975 @example
1976 (%i1) load("draw")$
1977 (%i2) draw3d(color = cyan,
1978              vector([0,0,0],[1,1,1]/sqrt(3)),
1979              vector([0,0,0],[1,-1,0]/sqrt(2)),
1980              vector([0,0,0],[1,1,-2]/sqrt(6)) )$
1981 @end example
1985 @item
1986 @code{explicit(fcn,var1,minval1,maxval1,var2,minval2,maxval2)}:
1987 monta o gráfico da função explícita @code{fcn}, com a variável @code{var1} assumindo valores
1988 de @code{minval1} a @code{maxval1} e variável @code{var2} assumindo valores
1989 de @code{minval2} a @code{maxval2}.
1991 Esse objeto é afetado pelas seguintes @i{opções gráficas}: @code{xu_grid}, 
1992 @code{yv_grid}, @code{line_type}, @code{key} e @code{color}.
1994 Exemplo:
1996 @example
1997 (%i1) load("draw")$
1998 (%i2) draw3d(key   = "Gauss",
1999              color = "#a02c00",
2000              explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3),
2001              color = blue,
2002              key   = "Plane",
2003              explicit(x+y,x,-5,5,y,-5,5),
2004              surface_hide = true)$
2005 @end example
2008 @item
2009 @code{parametric(xfun,yfun,zfun,par,parmin,parmax)}:
2010 monta o gráfico da curva paramétrica @code{[xfun,yfun,zfun]}, com parâmetro @code{par}
2011 assumindo valores de @code{parmin} a @code{parmax}.
2013 Esse objeto é afetado pelas seguintes @i{opções gráficas}: @code{nticks}, 
2014 @code{line_width}, @code{line_type}, @code{key} e @code{color}.
2016 Exemplo:
2018 @example
2019 (%i1) load("draw")$
2020 (%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3),
2021              color = royalblue,
2022              parametric(cos(5*u)^2,sin(7*u),u-2,u,0,2),
2023              color      = turquoise,
2024              line_width = 2,
2025              parametric(t^2,sin(t),2+t,t,0,2),
2026              surface_hide = true,
2027              title = "Surface & curves" )$
2028 @end example
2031 @item
2032 @code{parametric_surface(xfun,yfun,zfun,par1,par1min,par1max,par2,par2min,par2max)}:
2033 monta o gráfico da superfície paramétrica @code{[xfun,yfun,zfun]}, com parâmetro @code{par1}
2034 assumindo valores de @code{par1min} a @code{par1max} e o parâmetro @code{par2}
2035 assumindo valores de @code{par2min} a @code{par2max}.
2037 Esse objeto é afetado pelas seguintes @i{opções gráficas}: @code{xu_grid}, 
2038 @code{yv_grid}, @code{line_type}, @code{key} e @code{color}.
2040 Exemplo:
2042 @example
2043 (%i1) load("draw")$
2044 (%i2) draw3d(title          = "Concha do mar",
2045              xu_grid        = 100,
2046              yv_grid        = 25,
2047              rot_vertical   = 100,
2048              rot_horizontal = 20,
2049              surface_hide   = true,
2050              parametric_surface(0.5*u*cos(u)*(cos(v)+1),
2051                                 0.5*u*sin(u)*(cos(v)+1),
2052                                 u*sin(v) - ((u+3)/8*%pi)^2 - 20,
2053                                 u, 0, 13*%pi, v, -%pi, %pi) )$
2054 @end example
2056 @end itemize
2058 Veja também as seguintes opções gráficas: @code{xrange}, @code{yrange}, 
2059 @code{zrange}, @code{logx}, @code{logy}, @code{logz}, @code{terminal}, 
2060 @code{grid}, @code{title}, @code{xlabel}, @code{ylabel}, @code{zlabel}, 
2061 @code{xtics}, @code{ytics}, @code{ztics}, @code{xy_file}, 
2062 @code{user_preamble}, @code{axis_bottom}, @code{axis_left}, 
2063 @code{axis_top}, @code{file_name}, @code{pic_width}, @code{pic_height}, 
2064 @code{eps_width}, @code{eps_height},
2065 @code{axis_right}, @code{rot_vertical}, @code{rot_horizontal}, 
2066 @code{axis_3d}, @code{xu_grid}, @code{yv_grid}, @code{surface_hide}, 
2067 @code{contour}, @code{contour_levels}, @code{palette}, @code{colorbox}
2068 e @code{enhanced3d}.
2071 @end deffn
2079 @deffn {Function} draw (@var{gr2d}, ..., @var{gr3d}, ..., @var{opções}, ...)
2081 Monta o fundo de uma série de gráficos; seus argumentos são objetos @code{gr2d} e
2082 @code{gr3d}, juntamente com algumas opções. Por padrão, o fundos gráficos são colocados juntos
2083 em uma coluna.
2085 A função @code{draw} aceita duas opções possíveis: @code{terminal} 
2086 e @code{columns}.
2088 As funções @code{draw2d} e @code{draw3d} são atalhos para serem usados 
2089 quando somente um fundo gráfico é requerido, em duas ou três dimensões, respectivamente.
2091 Para fazer uso dessa função escreva primeiramente @code{load("draw")}.
2093 Exemplo:
2095 @example
2096 (%i1) load("draw")$
2097 (%i2) scene1: gr2d(title="Ellipse",
2098                    nticks=30,
2099                    parametric(2*cos(t),5*sin(t),t,0,2*%pi))$
2100 (%i3) scene2: gr2d(title="Triangle",
2101                    polygon([4,5,7],[6,4,2]))$
2102 (%i4) draw(scene1, scene2, columns = 2)$
2103 @end example
2104 @end deffn
2107 @deffn {Função} draw2d (@var{opção}, @var{objeto gráfico}, ...)
2109 Essa função é um atalho para
2110 @code{draw2d(gr2d(@var{opções}, ..., @var{objeto gráfico}, ...))}.
2112 Pode ser usada para montar gráfico de um único fundo bidimensional.
2114 Para fazer uso dessa função escreva primeiramente @code{load("draw")}.
2116 @end deffn
2119 @deffn {Função} draw3d (@var{opção}, @var{graphic object}, ...)
2121 Essa função é um atalho para
2122 @code{draw3d(gr3d(@var{opções}, ..., @var{objeto gráfico}, ...))}.
2124 Pode ser usada para montar o fundo gráfico único tridmensional.
2126 Para fazer uso dessa função escreva primeiramente @code{load("draw")}.
2128 @end deffn
2132 @defvr {Variável} draw_pipes
2133 Valor padrão: @code{true}
2135 Quando @code{draw_pipes} for @code{true}, Maxima comunica-se com Gnuplot
2136 diretamente (via pipes). Se @code{draw_pipes} for @code{false}, Maxima comunica-se 
2137 com Gnuplot via arquivos. Essa opção não está disponível para usuários windows.
2139 @end defvr