1 @c Language: Brazilian Portuguese, Encoding: iso-8859-1
2 @c /draw.texi/1.13/Sat Jun 2 00:13:20 2007//
5 * Funções e Variáveis Definidas para draw::
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
54 (%i2) draw2d(xrange = [-3,5],
55 explicit(x^2,x,-1,1))$
58 Veja também @code{yrange} e @code{zrange}.
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
79 (%i2) draw2d(yrange = [-2,3],
84 Veja também @code{xrange} e @code{zrange}.
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
105 (%i2) draw3d(yrange = [-3,3],
107 explicit(x^2+y^2,x,-1,1,y,-1,1),
111 Veja também @code{yrange} e @code{zrange}.
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
122 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
129 (%i2) draw2d(explicit(log(x),x,0.01,5),
133 Veja também @code{logy} e @code{logz}.
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
144 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
151 (%i2) draw2d(logy = true,
152 explicit(exp(x),x,0,5))$
155 Veja também @code{logx} e @code{logz}.
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
166 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
173 (%i2) draw3d(logz = true,
174 explicit(exp(u^2+v^2),u,-2,2,v,-2,2))$
177 Veja também @code{logx} e @code{logy}.
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}
195 (%i2) /* screen terminal (default) */
196 draw2d(explicit(x^2,x,-1,1))$
198 draw2d(terminal = 'png,
200 explicit(x^2,x,-1,1))$
202 draw2d(terminal = 'jpg,
205 explicit(x^2,x,-1,1))$
207 draw2d(file_name = "myfile",
208 explicit(x^2,x,-1,1),
212 Veja também @code{file_name}, @code{pic_width}, e @code{pic_height}.
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
229 (%i2) draw2d(grid = true,
230 explicit(exp(u),u,-2,2))$
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
249 (%i2) draw2d(explicit(exp(u),u,-2,2),
250 title = "Exponential function")$
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
269 (%i2) draw2d(xlabel = "Time",
270 explicit(exp(u),u,-2,2),
271 ylabel = "Population")$
274 Veja também @code{ylabel}, e @code{zlabel}.
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
292 (%i2) draw2d(xlabel = "Time",
293 ylabel = "Population",
294 explicit(exp(u),u,-2,2) )$
297 Veja também @code{xlabel}, e @code{zlabel}.
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
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" )$
321 Veja também @code{xlabel}, e @code{ylabel}.
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
338 (%i2) /* No tics in the x-axis */
339 draw2d(xtics = false,
340 explicit(exp(u),u,-2,2))$
343 Veja também @code{ytics}, e @code{ztics}.
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
360 (%i2) draw2d(ytics = false,
361 explicit(exp(u),u,-2,2),
365 Veja também @code{xtics}, e @code{ztics}.
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
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) )$
387 Veja também @code{xtics}, e @code{ytics}.
392 @defvr {Opção gráfica} rot_vertical
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
407 (%i2) draw3d(rot_vertical = 170,
408 explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
411 Veja também @code{rot_horizontal}.
416 @defvr {Opção gráfica} rot_horizontal
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
431 (%i2) draw3d(rot_vertical = 170,
432 rot_horizontal = 360,
433 explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
436 Veja também @code{rot_vertical}.
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
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
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},
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")$
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}.
493 (%i2) draw2d(file_name = "myfile",
494 explicit(x^2,x,-1,1),
498 Veja também @code{terminal}, @code{pic_width}, e @code{pic_height}.
503 @defvr {Opção gráfica} pic_width
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}.
515 (%i2) draw2d(terminal = 'png,
518 explicit(x^2,x,-1,1))$
521 Veja também @code{terminal}, @code{file_name}, e @code{pic_height}.
526 @defvr {Opção gráfica} pic_height
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}.
538 (%i2) draw2d(terminal = 'png,
541 explicit(x^2,x,-1,1))$
544 Veja também @code{terminal}, @code{file_name}, e @code{pic_width}.
548 @defvr {Opção gráfica} eps_width
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}.
561 (%i2) draw2d(terminal = 'eps,
564 explicit(x^2,x,-1,1))$
567 Veja também @code{terminal}, @code{file_name}, e @code{eps_height}.
572 @defvr {Opção gráfica} eps_height
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}.
585 (%i2) draw2d(terminal = 'eps,
588 explicit(x^2,x,-1,1))$
591 Veja também @code{terminal}, @code{file_name}, e @code{eps_width}.
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
608 (%i2) draw2d(axis_bottom = false,
609 explicit(x^3,x,-1,1))$
612 Veja também @code{axis_left}, @code{axis_top}, @code{axis_right}, e @code{axis_3d}.
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
629 (%i2) draw2d(axis_left = false,
630 explicit(x^3,x,-1,1))$
633 Veja também @code{axis_bottom}, @code{axis_top}, @code{axis_right}, e @code{axis_3d}.
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
650 (%i2) draw2d(axis_top = false,
651 explicit(x^3,x,-1,1))$
654 Veja também @code{axis_bottom}, @code{axis_left}, @code{axis_right}, e @code{axis_3d}.
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
671 (%i2) draw2d(axis_right = false,
672 explicit(x^3,x,-1,1))$
675 Veja também @code{axis_bottom}, @code{axis_left}, @code{axis_top}, e @code{axis_3d}.
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
692 (%i2) draw3d(axis_3d = false,
693 explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
696 Veja também @code{axis_bottom}, @code{axis_left}, @code{axis_top}, e @code{axis_right} para eixos em duas dimensões.
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:
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
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
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],
746 image(im,0,0,30,30))$
749 Veja também @code{colorbox}.
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
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))$
774 Veja também @code{palette}.
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.
791 (%i2) draw3d(surface_hide = true,
794 explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$
800 @defvr {Opção gráfica} point_size
803 @code{point_size} escolhe o tamanho para os pontos do gráfico. Esse valor deve ser um
806 Essa opção afeta os seguintes objetos gráficos:
809 @code{gr2d}: @code{points}.
812 @code{gr3d}: @code{points}.
819 (%i2) draw2d(points(makelist([random(20),random(50)],k,1,10)),
821 points(makelist(k,k,1,20),makelist(random(30),k,1,20)))$
827 @defvr {Opção gráfica} point_type
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:
841 @code{gr2d}: @code{points}.
844 @code{gr3d}: @code{points}.
851 (%i2) draw2d(xrange = [0,10],
855 points([[1,1],[5,1],[9,1]]),
857 points([[1,2],[5,2],[9,2]]),
858 point_type = asterisk,
859 points([[1,3],[5,3],[9,3]]),
861 points([[1,4],[5,4],[9,4]]),
863 points([[1,5],[5,5],[9,5]]),
865 points([[1,6],[5,6],[9,6]]),
866 point_type = filled_circle,
867 points([[1,7],[5,7],[9,7]]),
869 points([[1,8],[5,8],[9,8]]),
870 point_type = filled_diamant,
871 points([[1,9],[5,9],[9,9]]) )$
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:
885 @code{gr2d}: @code{points}.
888 @code{gr3d}: @code{points}.
895 (%i2) draw2d(xrange = [0,10],
900 points([[1,1],[5,1],[9,1]]),
901 points_joined = true,
904 points([[1,2],[5,2],[9,2]]),
908 points([[1,3],[5,3],[9,3]]) )$
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}.
926 (%i2) draw2d(fill_color = red,
928 explicit(sin(x),x,0,10) )$
931 Veja também @code{fill_color}.
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:
945 @code{gr2d}: @code{polygon}, @code{rectangle}, e @code{ellipse}.
952 (%i2) draw2d(polygon([[3,2],[7,2],[5,5]]),
955 polygon([[5,2],[9,2],[7,5]]) )$
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:
970 @code{gr2d}: @code{polygon}, @code{rectangle}, e @code{ellipse}.
977 (%i2) draw2d(color = brown,
979 polygon([[3,2],[7,2],[5,5]]),
982 polygon([[5,2],[9,2],[7,5]]) )$
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}.
1000 (%i2) draw2d(xrange = [0,8],
1003 vector([1,1],[6,0]),
1005 vector([1,7],[6,0]) )$
1008 Veja também @code{head_length}, @code{head_angle}, e @code{head_type}.
1013 @defvr {Opção gráfica} head_length
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}.
1024 (%i2) draw2d(xrange = [0,12],
1026 vector([0,1],[5,5]),
1028 vector([2,1],[5,5]),
1030 vector([4,1],[5,5]),
1032 vector([6,1],[5,5]))$
1035 Veja também @code{head_both}, @code{head_angle}, e @code{head_type}.
1040 @defvr {Opção gráfica} head_angle
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}.
1052 (%i2) draw2d(xrange = [0,10],
1056 vector([1,1],[0,6]),
1058 vector([2,1],[0,6]),
1060 vector([3,1],[0,6]),
1062 vector([4,1],[0,6]),
1064 vector([5,1],[0,6]),
1066 vector([6,1],[0,6]),
1068 vector([7,1],[0,6]),
1070 vector([8,1],[0,6]),
1072 vector([9,1],[0,6]) )$
1075 Veja também @code{head_both}, @code{head_length}, e @code{head_type}.
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}.
1093 (%i2) draw2d(xrange = [0,12],
1096 vector([0,1],[5,5]), /* default type */
1098 vector([3,1],[5,5]),
1099 head_type = 'nofilled,
1100 vector([6,1],[5,5]))$
1103 Veja também @code{head_both}, @code{head_angle}, e @code{head_length}.
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}.
1121 (%i2) draw2d(xrange = [0,10],
1123 points_joined = true,
1124 points([[5,0],[5,10]]),
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))$
1133 Veja também @code{label_orientation}, e @code{color}.
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}.
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.
1152 (%i2) draw2d(xrange = [0,10],
1157 label("Horizontal orientation (default)",5,2),
1158 label_orientation = 'vertical,
1160 label("Vertical orientation",1,5))$
1163 Veja também @code{label_alignment}, e @code{color}.
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"}.
1203 (%i2) draw2d(explicit(x^2,x,-1,1), /* default is black */
1205 explicit(0.5 + x^2,x,-1,1),
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),
1211 label("Esse é um rótulo",0,1.2) )$
1214 Veja também @code{fill_color}.
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.
1230 @defvr {Opção gráfica} line_width
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:
1239 @code{gr2d}: @code{points}, @code{polygon}, @code{rectangle},
1240 @code{ellipse}, @code{vector}, @code{explicit}, @code{implicit},
1241 @code{parametric} e @code{polar}.
1244 @code{gr3d}: @code{points} e @code{parametric}.
1251 (%i2) draw2d(explicit(x^2,x,-1,1), /* default width */
1253 explicit(1 + x^2,x,-1,1),
1255 explicit(2 + x^2,x,-1,1))$
1258 Veja também @code{line_type}.
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:
1272 @code{gr2d}: @code{points}, @code{polygon}, @code{rectangle},
1273 @code{ellipse}, @code{vector}, @code{explicit}, @code{implicit},
1274 @code{parametric} e @code{polar}.
1277 @code{gr3d}: @code{points}, @code{explicit}, @code{parametric} e @code{parametric_surface}.
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))$
1290 Veja também @code{line_width}.
1295 @defvr {Opção gráfica} nticks
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:
1303 @code{gr2d}: @code{ellipse}, @code{explicit}, @code{parametric} e @code{polar}.
1306 @code{gr3d}: @code{parametric}.
1313 (%i2) draw2d(transparent = true,
1314 ellipse(0,0,4,2,0,180),
1316 ellipse(0,0,4,2,180,180) )$
1322 @defvr {Opção gráfica} adapt_depth
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}.
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:
1341 @code{gr2d}: @code{points}, @code{polygon}, @code{rectangle},
1342 @code{ellipse}, @code{vector}, @code{explicit}, @code{implicit},
1343 @code{parametric}, e @code{polar}.
1346 @code{gr3d}: @code{points}, @code{explicit}, @code{parametric},
1347 e @code{parametric_surface}.
1354 (%i2) draw2d(key = "Seno",
1355 explicit(sin(x),x,0,10),
1358 explicit(cos(x),x,0,10) )$
1364 @defvr {Opção gráfica} xu_grid
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:
1374 @code{gr3d}: @code{explicit} e @code{parametric_surface}.
1381 (%i2) draw3d(xu_grid = 10,
1383 explicit(x^2+y^2,x,-3,3,y,-3,3) )$
1386 Veja também @code{yv_grid}.
1391 @defvr {Opção gráfica} yv_grid
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:
1401 @code{gr3d}: @code{explicit} e @code{parametric_surface}.
1408 (%i2) draw3d(xu_grid = 10,
1410 explicit(x^2+y^2,x,-3,3,y,-3,3) )$
1413 Veja também @code{xu_grid}.
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
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)) )$
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:
1449 nenhuma linha de contorno é mostrada.
1453 linhas de contorno são projetadas no plano xy.
1457 linhas de contorno são mostradas sobre a superfície.
1461 duas linhas de contorno são mostradas: no plano xy e sobre a superfície.
1465 linhas de contorno são projetadas sobre o plano xy, e o ponto de boservação é
1466 escolhido na vertical.
1470 Uma vez que essa é uma opção gráfica global, sua posição na descrição do fundo
1477 (%i2) draw3d(explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
1478 contour_levels = 15,
1480 surface_hide = true) $
1486 @defvr {Opção gráfica} contour_levels
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
1498 (%i2) draw3d(explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
1499 contour_levels = 15,
1501 surface_hide = true) $
1507 @defvr {Opção gráfica} columns
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}.
1519 (%i2) scene1: gr2d(title="Elipse",
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)$
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.
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.
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:
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}.
1581 (%i2) draw2d(key = "Small points",
1582 points(makelist([random(20),random(50)],k,1,10)),
1585 points_joined = true,
1586 key = "Great points",
1587 points(makelist(k,k,1,20),makelist(random(30),k,1,20)))$
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}.
1602 (%i2) draw2d(color = "#e245f0",
1604 polygon([[3,2],[7,2],[5,5]]),
1606 fill_color = yellow,
1607 polygon([[5,2],[9,2],[7,5]]) )$
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}.
1624 (%i2) draw2d(fill_color = red,
1627 transparent = false,
1629 rectangle([-2,-2],[8,-1]), /* opposite vertices */
1633 rectangle([9,4],[2,-1.5]),
1635 yrange = [-3,4.5] )$
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
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}.
1655 (%i2) draw2d(transparent = false,
1658 transparent = false,
1660 ellipse(0,6,3,2,270,-270), /* center (x,y), a, b, start & end in degrees */
1664 ellipse(2.5,6,2,3,30,-90),
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}.
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.
1684 (%i2) draw2d(explicit(x^2,x,-1,1),
1686 label("Label in red",0,0.3),
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) )$
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}.
1706 (%i2) draw2d(xrange = [0,12],
1709 vector([0,1],[5,5]), /* default type */
1711 vector([3,1],[5,5]),
1713 head_type = 'nofilled,
1715 vector([6,1],[5,5]))$
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}.
1732 (%i2) draw2d(line_width = 3,
1734 explicit(x^2,x,-3,3) )$
1735 (%i3) draw2d(fill_color = brown,
1737 explicit(x^2,x,-3,3) )$
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}.
1754 (%i2) draw2d(terminal = eps,
1757 key = "y^2=x^3-2*x+1",
1758 implicit(y^2=x^3-2*x+1, x, -4,4, y, -4,4),
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" )$
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}.
1778 (%i2) draw2d(user_preamble = "set grid polar",
1784 title = "Hyperbolic Spiral",
1785 polar(10/theta,theta,1,10*%pi) )$
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}.
1801 (%i2) draw2d(explicit(exp(x),x,-1,3),
1803 key = "Esse é a unidade paramétrica!!",
1804 parametric(2*cos(rrr),rrr^2,rrr,0,2*%pi))$
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:
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
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.
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}.
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],
1858 image(im,0,0,30,30))$
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.
1870 makelist([random(300),
1872 random(300)],i,1,30),i,1,30))$
1873 (%i3) draw2d(image(im,0,0,30,30))$
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}.
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:
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}
1919 Uma amostra tridimensional,
1922 (%i2) load ("numericalio")$
1923 (%i3) s2 : read_matrix (file_search ("wind.data"))$
1924 (%i4) draw3d(title = "Velocidades diárias de ventos disponíveis",
1926 points(args(submatrix (s2, 4, 5))) )$
1929 Duas amostras tridimensionais,
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",
1936 key = "Amostras das estações 1, 2 e 3",
1937 points(args(submatrix (s2, 4, 5))),
1939 key = "Amostras das estações 1, 4 e 5",
1940 points(args(submatrix (s2, 2, 3))) )$
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}.
1955 (%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3),
1957 label("SUBINDO",-2,0,3),
1959 label("DESCENDO",2,0,-3) )$
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}.
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)) )$
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}.
1998 (%i2) draw3d(key = "Gauss",
2000 explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3),
2003 explicit(x+y,x,-5,5,y,-5,5),
2004 surface_hide = true)$
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}.
2020 (%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3),
2022 parametric(cos(5*u)^2,sin(7*u),u-2,u,0,2),
2025 parametric(t^2,sin(t),2+t,t,0,2),
2026 surface_hide = true,
2027 title = "Surface & curves" )$
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}.
2044 (%i2) draw3d(title = "Concha do mar",
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) )$
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}.
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
2085 A função @code{draw} aceita duas opções possíveis: @code{terminal}
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")}.
2097 (%i2) scene1: gr2d(title="Ellipse",
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)$
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")}.
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")}.
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.