Print a warning when translating subscripted functions
[maxima.git] / doc / info / ru / draw.texi
blob45d5e87096365361125402d72ea45ebbe518f138
1 @c Language=Russian
2 @c Encoding=UTF-8
3 @c File=draw.texi 
4 @c OriginalRevision=1.25
5 @c TranslatedBy: (c) 2007-11 Vadim V. Zhytnikov <vvzhyt@gmail.com>
8 @menu
9 * Введение в пакет draw::
10 * Функции и переменные пакета draw::
11 * Функции и переменные для картин::
12 * Функции и переменные для карты мира::
13 @end menu
19 @node Введение в пакет draw, Функции и переменные пакета draw, Пакет draw, Пакет draw
20 @section Введение в пакет draw
23 @code{draw} является интерфейсом Maxima к программе Gnuplot.
25 На уровне Maxima есть три основные функции: 
26 @code{draw2d}, @code{draw3d} и @code{draw}.
28 Более сложные примеры использования пакета можно найти по ссылке:
30 @url{http://www.telefonica.net/web2/biomates/maxima/gpdraw}
33 Для работы программы требуется Gnuplot 4.2.
35 @opencatbox{Категории:}
36 @category{Графика}
37 @category{Пакеты библиотеки share}
38 @category{Пакет draw}
39 @closecatbox
42 @node Функции и переменные пакета draw, Функции и переменные для картин, Введение в пакет draw, Пакет draw
43 @section Функции и переменные пакета draw
48 @defvr {Графическая опция} xrange
49 Значение по умолчанию: @code{auto}
51 Если @code{xrange} равно @code{auto}, то диапазон координаты @var{x} вычисляется автоматически.
53 Если требуется определенный интервал @var{x}, он должен быть задан в форме списка,
54 например @code{xrange=[-2, 3]}.
56 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
59 Пример:
61 @example
62 (%i1) load("draw")$
63 (%i2) draw2d(xrange = [-3,5],
64              explicit(x^2,x,-1,1))$
65 @end example
67 См. @code{yrange} и @code{zrange}.
69 @opencatbox{Категории:}
70 @category{Пакет draw}
71 @closecatbox
73 @end defvr
77 @defvr {Графическая опция} yrange
78 Значение по умолчанию: @code{auto}
80 Если @code{yrange} равно @code{auto}, то диапазон координаты @var{y} вычисляется автоматически.
82 Если требуется определенный интервал @var{y}, он должен быть задан в форме списка,
83 например @code{yrange=[-2, 3]}.
85 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
88 Пример:
90 @example
91 (%i1) load("draw")$
92 (%i2) draw2d(yrange = [-2,3],
93              explicit(x^2,x,-1,1),
94              xrange = [-3,3])$
95 @end example
97 См. @code{xrange} и @code{zrange}.
99 @opencatbox{Категории:}
100 @category{Пакет draw}
101 @closecatbox
103 @end defvr
107 @defvr {Графическая опция} zrange
108 Значение по умолчанию: @code{auto}
110 Если @code{zrange} равно @code{auto}, то диапазон координаты @var{z} вычисляется автоматически.
112 Если требуется определенный интервал @var{z}, он должен быть задан в форме списка,
113 например @code{zrange=[-2, 3]}.
115 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
118 Пример:
120 @example
121 (%i1) load("draw")$
122 (%i2) draw3d(yrange = [-3,3],
123              zrange = [-2,5],
124              explicit(x^2+y^2,x,-1,1,y,-1,1),
125              xrange = [-3,3])$
126 @end example
128 См. @code{xrange} и @code{yrange}.
130 @opencatbox{Категории:}
131 @category{Пакет draw}
132 @closecatbox
134 @end defvr
138 @defvr {Графическая опция} logx
139 Значение по умолчанию: @code{false}
141 Если @code{logx} равно @code{true}, то ось @var{x} будет изображаться в логарифмической шкале.
143 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
146 Пример:
148 @example
149 (%i1) load("draw")$
150 (%i2) draw2d(explicit(log(x),x,0.01,5),
151              logx = true)$
152 @end example
154 См. @code{logy} и @code{logz}.
156 @opencatbox{Категории:}
157 @category{Пакет draw}
158 @closecatbox
160 @end defvr
164 @defvr {Графическая опция} logy
165 Значение по умолчанию: @code{false}
167 Если @code{logy} равно @code{true}, то ось @var{y} будет изображаться в логарифмической шкале.
169 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
172 Пример:
174 @example
175 (%i1) load("draw")$
176 (%i2) draw2d(logy = true,
177              explicit(exp(x),x,0,5))$
178 @end example
180 См. @code{logx} и @code{logz}.
182 @opencatbox{Категории:}
183 @category{Пакет draw}
184 @closecatbox
186 @end defvr
190 @defvr {Графическая опция} logz
191 Значение по умолчанию: @code{false}
193 Если @code{logz} равно @code{true}, то ось @var{z} будет изображаться в логарифмической шкале.
195 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
198 Пример:
200 @example
201 (%i1) load("draw")$
202 (%i2) draw3d(logz = true,
203              explicit(exp(u^2+v^2),u,-2,2,v,-2,2))$
204 @end example
206 См. @code{logx} и @code{logy}.
208 @opencatbox{Категории:}
209 @category{Пакет draw}
210 @closecatbox
212 @end defvr
216 @defvr {Графическая опция} terminal
217 Значение по умолчанию: @code{screen}
219 Выбирает терминал, используемый программой Gnuplot. Возможные значения:
220 @code{screen} (умолчание), @code{png}, @code{jpg}, @code{eps}, @code{eps_color},
221 @code{gif}, @code{animated_gif} и @code{wxt}.
223 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
224 Она также может использоваться как аргумент функции @code{draw}.
226 Примеры:
228 @example
229 (%i1) load("draw")$
230 (%i2) /* screen terminal (default) */
231       draw2d(explicit(x^2,x,-1,1))$
232 (%i3) /* png file */
233       draw2d(terminal  = 'png,
234              pic_width = 300,
235              explicit(x^2,x,-1,1))$
236 (%i4) /* jpg file */
237       draw2d(terminal   = 'jpg,
238              pic_width  = 300,
239              pic_height = 300,
240              explicit(x^2,x,-1,1))$
241 (%i5) /* eps file */
242       draw2d(file_name = "myfile",
243              explicit(x^2,x,-1,1),
244              terminal  = 'eps)$
245 (%i6) /* wxwidgets window */
246       draw2d(explicit(x^2,x,-1,1),
247              terminal  = 'wxt)$
248 @end example
250 Файл анимированного gif:
251 @example
252 (%i1) load("draw")$
253 (%i2) draw(
254         delay     = 100,
255         file_name = "zzz",
256         terminal  = 'animated_gif,
257         gr2d(explicit(x^2,x,-1,1)),
258         gr2d(explicit(x^3,x,-1,1)),
259         gr2d(explicit(x^4,x,-1,1)));
260 End of animation sequence
261 (%o2)          [gr2d(explicit), gr2d(explicit), gr2d(explicit)]
262 @end example
264 Опция @code{delay} возможна тоько для анимированного gif. В других случаях она игнорируется.
266 См. @code{file_name}, @code{pic_width}, @code{pic_height} и @code{delay}.
268 @opencatbox{Категории:}
269 @category{Пакет draw}
270 @closecatbox
272 @end defvr
276 @defvr {Графическая опция} grid
277 Значение по умолчанию: @code{false}
279 Если @code{grid} равно @code{true}, то на плоскости @var{xy} будет изображена сетка.
281 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
284 Пример:
286 @example
287 (%i1) load("draw")$
288 (%i2) draw2d(grid = true,
289              explicit(exp(u),u,-2,2))$
290 @end example
292 @opencatbox{Категории:}
293 @category{Пакет draw}
294 @closecatbox
296 @end defvr
300 @defvr {Графическая опция} title
301 Значение по умолчанию: @code{""} (пустая строка)
303 Опция @code{title} -- строка, содержащая основной заголовок сцены.
304 По умолчанию заголовок отсутствует.
306 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
309 Пример:
311 @example
312 (%i1) load("draw")$
313 (%i2) draw2d(explicit(exp(u),u,-2,2),
314              title = "Exponential function")$
315 @end example
317 @opencatbox{Категории:}
318 @category{Пакет draw}
319 @closecatbox
321 @end defvr
325 @defvr {Графическая опция} xlabel
326 Значение по умолчанию: @code{""} (пустая строка)
328 Опция @code{xlabel} -- строка, содержащая метку для оси @var{x}.
329 По умолчанию метка отсутствует.
331 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
334 Пример:
336 @example
337 (%i1) load("draw")$
338 (%i2) draw2d(xlabel = "Time",
339              explicit(exp(u),u,-2,2),
340              ylabel = "Population")$
341 @end example
343 См. @code{ylabel} и @code{zlabel}.
345 @opencatbox{Категории:}
346 @category{Пакет draw}
347 @closecatbox
349 @end defvr
353 @defvr {Графическая опция} ylabel
354 Значение по умолчанию: @code{""} (пустая строка)
356 Опция @code{ylabel} -- строка, содержащая метку для оси @var{y}.
357 По умолчанию метка отсутствует.
359 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
362 Пример:
364 @example
365 (%i1) load("draw")$
366 (%i2) draw2d(xlabel = "Time",
367              ylabel = "Population",
368              explicit(exp(u),u,-2,2) )$
369 @end example
371 См. @code{xlabel} и @code{zlabel}.
373 @opencatbox{Категории:}
374 @category{Пакет draw}
375 @closecatbox
377 @end defvr
381 @defvr {Графическая опция} zlabel
382 Значение по умолчанию: @code{""} (пустая строка)
384 Опция @code{zlabel} -- строка, содержащая метку для оси @var{z}.
385 По умолчанию метка отсутствует.
387 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
390 Пример:
392 @example
393 (%i1) load("draw")$
394 (%i2) draw3d(zlabel = "Z variable",
395              ylabel = "Y variable",
396              explicit(sin(x^2+y^2),x,-2,2,y,-2,2),
397              xlabel = "X variable" )$
398 @end example
400 См. @code{xlabel} и @code{ylabel}.
402 @opencatbox{Категории:}
403 @category{Пакет draw}
404 @closecatbox
406 @end defvr
409 @defvr {Графическая опция} xtics
410 Значение по умолчанию: @code{auto}
412 Управляет методом изображения делений на оси @var{x}.
414 @itemize @bullet
415 @item
416 Если @code{xtics} равно @var{auto}, то деления изображаются автоматически.
418 @item
419 Если @code{xtics} равно @var{none}, то деления не изображаются.
421 @item
422 Если @code{xtics} равно положительному числу, то это задает расстояние между соседними делениями.
424 @item
425 Если @code{xtics} равно списку длины три вида @code{[start,incr,end]}, 
426 то деления изображаются от отметки @code{start} до @code{end} с интервалом @code{incr}.
428 @item
429 Если @code{xtics} равно набору чисел @code{@{n1, n2, ...@}}, то деления изображаются
430 для значений @code{n1}, @code{n2}, ...
432 @item
433 Если @code{xtics} равно набору пар чисел вида @code{@{["label1", n1], ["label2", n2], ...@}}, 
434 то деления со значением @code{n1}, @code{n2}, ... 
435 обозначаются метками @code{"label1"}, @code{"label2"}, ... соответственно.
436 @end itemize
438 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
441 Примеры:
443 Деления отключены.
444 @example
445 (%i1) load("draw")$
446 (%i2) draw2d(xtics = 'none,
447              explicit(x^3,x,-1,1)  )$
448 @end example
450 Деления на каждой 1/4.
451 @example
452 (%i1) load("draw")$
453 (%i2) draw2d(xtics = 1/4,
454              explicit(x^3,x,-1,1)  )$
455 @end example
457 Деления на значениях от -3/4 до 3/4 с шагом 1/8.
458 @example
459 (%i1) load("draw")$
460 (%i2) draw2d(xtics = [-3/4,1/8,3/4],
461              explicit(x^3,x,-1,1)  )$
462 @end example
464 Деления в точках -1/2, -1/4 и 3/4.
465 @example
466 (%i1) load("draw")$
467 (%i2) draw2d(xtics = @{-1/2,-1/4,3/4@},
468              explicit(x^3,x,-1,1)  )$
469 @end example
471 Деления с метками.
472 @example
473 (%i1) load("draw")$
474 (%i2) draw2d(xtics = @{["High",0.75],["Medium",0],["Low",-0.75]@},
475              explicit(x^3,x,-1,1)  )$
476 @end example
478 См. @code{ytics} и @code{ztics}.
480 @opencatbox{Категории:}
481 @category{Пакет draw}
482 @closecatbox
484 @end defvr
488 @defvr {Графическая опция} ytics
489 Значение по умолчанию: @code{auto}
491 Управляет методом изображения делений на оси @var{y}.
493 См. @code{xtics} для полного описания.
495 @opencatbox{Категории:}
496 @category{Пакет draw}
497 @closecatbox
499 @end defvr
503 @defvr {Графическая опция} ztics
504 Значение по умолчанию: @code{auto}
506 Управляет методом изображения делений на оси @var{z}.
508 См. @code{xtics} для полного описания.
510 @opencatbox{Категории:}
511 @category{Пакет draw}
512 @closecatbox
514 @end defvr
517 @defvr {Графическая опция} xtics_rotate
518 Значение по умолчанию: @code{false}
520 Если @code{xtics_rotate} равно @code{true}, то деления на оси @var{x} поворачиваются на 90 градусов.
522 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
524 @opencatbox{Категории:}
525 @category{Пакет draw}
526 @closecatbox
528 @end defvr
531 @defvr {Графическая опция} ytics_rotate
532 Значение по умолчанию: @code{false}
534 Если @code{ytics_rotate} равно @code{true}, то деления на оси @var{y} поворачиваются на 90 градусов.
536 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
538 @opencatbox{Категории:}
539 @category{Пакет draw}
540 @closecatbox
542 @end defvr
545 @defvr {Графическая опция} ztics_rotate
546 Значение по умолчанию: @code{false}
548 Если @code{ztics_rotate} равно @code{true}, то деления на оси @var{z} поворачиваются на 90 градусов.
550 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
552 @opencatbox{Категории:}
553 @category{Пакет draw}
554 @closecatbox
556 @end defvr
559 @defvr {Графическая опция} xtics_axis
560 Значение по умолчанию: @code{false}
562 Если @code{xtics_axis} равно @code{true}, то деления и их метки изображаются вдоль оси @var{x}, 
563 если @code{false}, то деления изображаются на границе.
565 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
567 @opencatbox{Категории:}
568 @category{Пакет draw}
569 @closecatbox
571 @end defvr
573 @defvr {Графическая опция} ytics_axis
574 Значение по умолчанию: @code{false}
576 Если @code{ytics_axis} равно @code{true}, то деления и их метки изображаются вдоль оси @var{y}, 
577 если @code{false}, то деления изображаются на границе.
579 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
581 @opencatbox{Категории:}
582 @category{Пакет draw}
583 @closecatbox
585 @end defvr
587 @defvr {Графическая опция} ztics_axis
588 Значение по умолчанию: @code{false}
590 Если @code{ztics_axis} равно @code{true}, то деления и их метки изображаются вдоль оси @var{z}, 
591 если @code{false}, то деления изображаются на границе.
593 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
595 @opencatbox{Категории:}
596 @category{Пакет draw}
597 @closecatbox
599 @end defvr
602 @defvr {Графическая опция} xaxis
603 Значение по умолчанию: @code{false}
605 Если @code{xaxis} равно @code{true}, то ось @var{x} изображается.
607 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
610 Пример:
612 @example
613 (%i1) load("draw")$
614 (%i2) draw2d(explicit(x^3,x,-1,1),
615              xaxis       = true,
616              xaxis_color = blue)$
617 @end example
619 См. @code{xaxis_width}, @code{xaxis_type} и @code{xaxis_color}.
621 @opencatbox{Категории:}
622 @category{Пакет draw}
623 @closecatbox
625 @end defvr
629 @defvr {Графическая опция} xaxis_width
630 Значение по умолчанию: 1
632 @code{xaxis_width} -- толщина оси @var{x}.
633 Значение должно быть положительным числом.
635 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
638 Пример:
640 @example
641 (%i1) load("draw")$
642 (%i2) draw2d(explicit(x^3,x,-1,1),
643              xaxis       = true,
644              xaxis_width = 3)$
645 @end example
647 См. @code{xaxis}, @code{xaxis_type} и @code{xaxis_color}.
649 @opencatbox{Категории:}
650 @category{Пакет draw}
651 @closecatbox
653 @end defvr
657 @defvr {Графическая опция} xaxis_type
658 Значение по умолчанию: @code{dots}
660 @code{xaxis_type} -- задает стиль изображения оси @var{x}. 
661 Возможные значения: @code{solid} и @code{dots}.
663 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
666 Пример:
668 @example
669 (%i1) load("draw")$
670 (%i2) draw2d(explicit(x^3,x,-1,1),
671              xaxis       = true,
672              xaxis_type  = solid)$
673 @end example
675 См. @code{xaxis}, @code{xaxis_width} и @code{xaxis_color}.
677 @opencatbox{Категории:}
678 @category{Пакет draw}
679 @closecatbox
681 @end defvr
685 @defvr {Графическая опция} xaxis_color
686 Значение по умолчанию: @code{"black"}
688 @code{xaxis_color} -- определяет цвет оси @var{x} axis. 
689 См. @code{color} для способа задания цвета.
691 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
694 Пример:
696 @example
697 (%i1) load("draw")$
698 (%i2) draw2d(explicit(x^3,x,-1,1),
699              xaxis       = true,
700              xaxis_color = red)$
701 @end example
703 См. @code{xaxis}, @code{xaxis_width} и @code{xaxis_type}.
705 @opencatbox{Категории:}
706 @category{Пакет draw}
707 @closecatbox
709 @end defvr
713 @defvr {Графическая опция} yaxis
714 Значение по умолчанию: @code{false}
716 Если @code{yaxis} равно @code{true}, то ось @var{y} изображается.
718 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
721 Пример:
723 @example
724 (%i1) load("draw")$
725 (%i2) draw2d(explicit(x^3,x,-1,1),
726              yaxis       = true,
727              yaxis_color = blue)$
728 @end example
730 См. @code{yaxis_width}, @code{yaxis_type} и @code{yaxis_color}.
732 @opencatbox{Категории:}
733 @category{Пакет draw}
734 @closecatbox
736 @end defvr
740 @defvr {Графическая опция} yaxis_width
741 Значение по умолчанию: 1
743 @code{yaxis_width} -- толщина оси @var{y}.
744 Значение должно быть положительным числом.
746 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
749 Пример:
751 @example
752 (%i1) load("draw")$
753 (%i2) draw2d(explicit(x^3,x,-1,1),
754              yaxis       = true,
755              yaxis_width = 3)$
756 @end example
758 См. @code{yaxis}, @code{yaxis_type} и @code{yaxis_color}.
760 @opencatbox{Категории:}
761 @category{Пакет draw}
762 @closecatbox
764 @end defvr
768 @defvr {Графическая опция} yaxis_type
769 Значение по умолчанию: @code{dots}
771 @code{yaxis_type} -- задает стиль изображения @var{y}. 
772 Возможные значения: @code{solid} и @code{dots}.
774 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
777 Пример:
779 @example
780 (%i1) load("draw")$
781 (%i2) draw2d(explicit(x^3,x,-1,1),
782              yaxis       = true,
783              yaxis_type  = solid)$
784 @end example
786 См. @code{yaxis}, @code{yaxis_width} и @code{yaxis_color}.
788 @opencatbox{Категории:}
789 @category{Пакет draw}
790 @closecatbox
792 @end defvr
796 @defvr {Графическая опция} yaxis_color
797 Значение по умолчанию: @code{"black"}
799 @code{yaxis_color} -- определяет цвет оси @var{y} axis. 
800 См. @code{color} для способа задания цвета.
802 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
805 Пример:
807 @example
808 (%i1) load("draw")$
809 (%i2) draw2d(explicit(x^3,x,-1,1),
810              yaxis       = true,
811              yaxis_color = red)$
812 @end example
814 См. @code{yaxis}, @code{yaxis_width} и @code{yaxis_type}.
816 @opencatbox{Категории:}
817 @category{Пакет draw}
818 @closecatbox
820 @end defvr
824 @defvr {Графическая опция} zaxis
825 Значение по умолчанию: @code{false}
827 Если @code{zaxis} равно @code{true}, то ось @var{x} изображается на трехмерных графиках.
828 Эта опция не влияет на двумерные графики.
830 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
833 Пример:
835 @example
836 (%i1) load("draw")$
837 (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
838              zaxis       = true,
839              zaxis_type  = solid,
840              zaxis_color = blue)$
841 @end example
843 См. @code{zaxis_width}, @code{zaxis_type} и @code{zaxis_color}.
845 @opencatbox{Категории:}
846 @category{Пакет draw}
847 @closecatbox
849 @end defvr
853 @defvr {Графическая опция} zaxis_width
854 Значение по умолчанию: 1
856 @code{zaxis_width} -- толщина оси @var{z}.
857 Значение должно быть положительным числом.
858 Эта опция не влияет на двумерные графики.
860 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
863 Пример:
865 @example
866 (%i1) load("draw")$
867 (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
868              zaxis       = true,
869              zaxis_type  = solid,
870              zaxis_width = 3)$
871 @end example
873 См. @code{zaxis}, @code{zaxis_type} и @code{zaxis_color}.
875 @opencatbox{Категории:}
876 @category{Пакет draw}
877 @closecatbox
879 @end defvr
883 @defvr {Графическая опция} zaxis_type
884 Значение по умолчанию: @code{dots}
886 @code{zaxis_type} -- задает стиль изображения оси @var{z}. 
887 Возможные значения: @code{solid} и @code{dots}.
888 Эта опция не влияет на двумерные графики.
890 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
893 Пример:
895 @example
896 (%i1) load("draw")$
897 (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
898              zaxis       = true,
899              zaxis_type  = solid)$
900 @end example
902 См. @code{zaxis}, @code{zaxis_width} и @code{zaxis_color}.
904 @opencatbox{Категории:}
905 @category{Пакет draw}
906 @closecatbox
908 @end defvr
912 @defvr {Графическая опция} zaxis_color
913 Значение по умолчанию: @code{"black"}
915 @code{zaxis_color} -- определяет цвет оси @var{z} axis. 
916 См. @code{color} для способа задания цвета.
917 Эта опция не влияет на двумерные графики.
919 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
922 Пример:
924 @example
925 (%i1) load("draw")$
926 (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
927              zaxis       = true,
928              zaxis_type  = solid,
929              zaxis_color = red)$
930 @end example
932 См. @code{zaxis}, @code{zaxis_width} и @code{zaxis_type}.
934 @opencatbox{Категории:}
935 @category{Пакет draw}
936 @closecatbox
938 @end defvr
942 @defvr {Графическая опция} rot_vertical
943 Значение по умолчанию: 60
945 @code{rot_vertical} -- угол поворота (в градусах) вокруг оси @var{x} 
946 точки наблюдения в трехмерных сценах.
948 Угол может быть в интервале @math{[0, 180]}.
950 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
953 Пример:
955 @example
956 (%i1) load("draw")$
957 (%i2) draw3d(rot_vertical = 170,
958              explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
959 @end example
961 См. @code{rot_horizontal}.
963 @opencatbox{Категории:}
964 @category{Пакет draw}
965 @closecatbox
967 @end defvr
971 @defvr {Графическая опция} rot_horizontal
972 Значение по умолчанию: 30
974 @code{rot_horizontal} -- угол поворота (в градусах) вокруг оси @var{z} 
975 точки наблюдения в трехмерных сценах.
977 Угол может быть в интервале @math{[0, 360]}.
979 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
982 Пример:
984 @example
985 (%i1) load("draw")$
986 (%i2) draw3d(rot_vertical = 170,
987              rot_horizontal = 360,
988              explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
989 @end example
991 См. @code{rot_vertical}.
993 @opencatbox{Категории:}
994 @category{Пакет draw}
995 @closecatbox
997 @end defvr
1001 @defvr {Графическая опция} xy_file
1002 Значение по умолчанию: @code{""} (пустая строка)
1004 @code{xy_file} -- имя файла, в котором будут сохранены координаты после щелчка мышкой и нажатия 
1005 клавиши 'x'. По умолчанию координаты не сохраняются.
1007 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1009 @opencatbox{Категории:}
1010 @category{Пакет draw}
1011 @closecatbox
1013 @end defvr
1017 @defvr {Графическая опция} user_preamble
1018 Значение по умолчанию: @code{""} (пустая строка)
1020 Опытные пользователи Gnuplot могут использовать эту опцию для тонкой
1021 настройке поведения Gnuplot путем задания установок до 
1022 комманд @code{plot} или @code{splot}.
1024 Значение этой опции должно быть строкой или списком строк (по одной на строку).
1026 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1029 Пример:
1031 Терминал @i{dumb} не поддерживается пакетом @code{draw},
1032 но можно задать его при помощи опции @code{user_preamble},
1033 @example
1034 (%i1) load("draw")$
1035 (%i2) draw2d(explicit(exp(x)-1,x,-1,1),
1036              parametric(cos(u),sin(u),u,0,2*%pi),
1037              user_preamble="set terminal dumb")$
1038 @end example
1040 @opencatbox{Категории:}
1041 @category{Пакет draw}
1042 @closecatbox
1044 @end defvr
1048 @defvr {Графическая опция} file_name
1049 Значение по умолчанию: @code{"maxima_out"}
1051 Это имя файла, в котром терминалы @code{png}, @code{jpg}, @code{eps}
1052 и @code{eps_color} сохраняют графику.
1054 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1055 Она также может использоваться как аргумент функции @code{draw}.
1057 Пример:
1059 @example
1060 (%i1) load("draw")$
1061 (%i2) draw2d(file_name = "myfile",
1062              explicit(x^2,x,-1,1),
1063              terminal  = 'png)$
1064 @end example
1066 См. @code{terminal}, @code{pic_width} и @code{pic_height}.
1068 @opencatbox{Категории:}
1069 @category{Пакет draw}
1070 @closecatbox
1072 @end defvr
1074 @defvr {Графическая опция} delay
1075 Значение по умолчанию: 5
1077 Это задержка в 1/100 секунды между кадрами анимированного gif.
1079 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1080 Она также может использоваться как аргумент функции @code{draw}.
1082 Пример:
1084 @example
1085 (%i1) load("draw")$
1086 (%i2) draw(
1087         delay     = 100,
1088         file_name = "zzz",
1089         terminal  = 'animated_gif,
1090         gr2d(explicit(x^2,x,-1,1)),
1091         gr2d(explicit(x^3,x,-1,1)),
1092         gr2d(explicit(x^4,x,-1,1)));
1093 End of animation sequence
1094 (%o2)          [gr2d(explicit), gr2d(explicit), gr2d(explicit)]
1095 @end example
1097 Опция @code{delay} применима только для анимированного gif.
1098 Для других случаев она игнорируется.
1100 См. @code{terminal}, @code{pic_width} и @code{pic_height}.
1102 @opencatbox{Категории:}
1103 @category{Пакет draw}
1104 @closecatbox
1106 @end defvr
1108 @defvr {Графическая опция} pic_width
1109 Значение по умолчанию: 640
1111 Это ширина изображения, создаваемого терминалами @code{png} и @code{jpg}.
1113 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1114 Она также может использоваться как аргумент функции @code{draw}.
1116 Пример:
1118 @example
1119 (%i1) load("draw")$
1120 (%i2) draw2d(terminal   = 'png,
1121              pic_width  = 300,
1122              pic_height = 300,
1123              explicit(x^2,x,-1,1))$
1124 @end example
1126 См. @code{terminal}, @code{file_name} и @code{pic_height}.
1128 @opencatbox{Категории:}
1129 @category{Пакет draw}
1130 @closecatbox
1132 @end defvr
1136 @defvr {Графическая опция} pic_height
1137 Значение по умолчанию: 640
1139 Это высота изображения, создаваемого терминалами @code{png} и @code{jpg}.
1141 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1142 Она также может использоваться как аргумент функции @code{draw}.
1144 Пример:
1146 @example
1147 (%i1) load("draw")$
1148 (%i2) draw2d(terminal   = 'png,
1149              pic_width  = 300,
1150              pic_height = 300,
1151              explicit(x^2,x,-1,1))$
1152 @end example
1154 См. @code{terminal}, @code{file_name} и @code{pic_width}.
1156 @opencatbox{Категории:}
1157 @category{Пакет draw}
1158 @closecatbox
1160 @end defvr
1164 @defvr {Графическая опция} eps_width
1165 Значение по умолчанию: 12
1167 Это ширина изображения Postscript (в сантиметрах),
1168 создаваемого терминалами @code{eps} и @code{eps_color}.
1170 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1171 Она также может использоваться как аргумент функции @code{draw}.
1173 Пример:
1175 @example
1176 (%i1) load("draw")$
1177 (%i2) draw2d(terminal   = 'eps,
1178              eps_width  = 3,
1179              eps_height = 3,
1180              explicit(x^2,x,-1,1))$
1181 @end example
1183 См. @code{terminal}, @code{file_name} и @code{eps_height}.
1185 @opencatbox{Категории:}
1186 @category{Пакет draw}
1187 @closecatbox
1189 @end defvr
1193 @defvr {Графическая опция} eps_height
1194 Значение по умолчанию: 8
1196 Это высота изображения Postscript (в сантиметрах),
1197 создаваемого терминалами @code{eps} и @code{eps_color}.
1199 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1200 Она также может использоваться как аргумент функции @code{draw}.
1202 Пример:
1204 @example
1205 (%i1) load("draw")$
1206 (%i2) draw2d(terminal   = 'eps,
1207              eps_width  = 3,
1208              eps_height = 3,
1209              explicit(x^2,x,-1,1))$
1210 @end example
1212 См. @code{terminal}, @code{file_name} и @code{eps_width}.
1214 @opencatbox{Категории:}
1215 @category{Пакет draw}
1216 @closecatbox
1218 @end defvr
1222 @defvr {Графическая опция} axis_bottom
1223 Значение по умолчанию: @code{true}
1225 Если @code{axis_bottom} равно @code{true}, то на двумерных сценах изображается
1226 нижняя ось.
1228 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1231 Пример:
1233 @example
1234 (%i1) load("draw")$
1235 (%i2) draw2d(axis_bottom = false,
1236              explicit(x^3,x,-1,1))$
1237 @end example
1239 См. @code{axis_left},  @code{axis_top}, @code{axis_right} и @code{axis_3d}.
1241 @opencatbox{Категории:}
1242 @category{Пакет draw}
1243 @closecatbox
1245 @end defvr
1249 @defvr {Графическая опция} axis_left
1250 Значение по умолчанию: @code{true}
1252 Если @code{axis_left} равно @code{true}, то на двумерных сценах изображается левая ось.
1254 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1257 Пример:
1259 @example
1260 (%i1) load("draw")$
1261 (%i2) draw2d(axis_left = false,
1262              explicit(x^3,x,-1,1))$
1263 @end example
1265 См. @code{axis_bottom},  @code{axis_top}, @code{axis_right} и @code{axis_3d}.
1267 @opencatbox{Категории:}
1268 @category{Пакет draw}
1269 @closecatbox
1271 @end defvr
1275 @defvr {Графическая опция} axis_top
1276 Значение по умолчанию: @code{true}
1278 Если @code{axis_top} равно @code{true}, то на двумерных сценах отображается верхняя ось.
1280 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1283 Пример:
1285 @example
1286 (%i1) load("draw")$
1287 (%i2) draw2d(axis_top = false,
1288              explicit(x^3,x,-1,1))$
1289 @end example
1291 См. @code{axis_bottom},  @code{axis_left}, @code{axis_right} и @code{axis_3d}.
1293 @opencatbox{Категории:}
1294 @category{Пакет draw}
1295 @closecatbox
1297 @end defvr
1301 @defvr {Графическая опция} axis_right
1302 Значение по умолчанию: @code{true}
1304 Если @code{axis_right} равно @code{true}, то на двумерных сценах отображается правая ось.
1306 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1309 Пример:
1311 @example
1312 (%i1) load("draw")$
1313 (%i2) draw2d(axis_right = false,
1314              explicit(x^3,x,-1,1))$
1315 @end example
1317 См. @code{axis_bottom},  @code{axis_left}, @code{axis_top} и @code{axis_3d}.
1319 @opencatbox{Категории:}
1320 @category{Пакет draw}
1321 @closecatbox
1323 @end defvr
1327 @defvr {Графическая опция} axis_3d
1328 Значение по умолчанию: @code{true}
1330 Если @code{axis_3d} равно @code{true}, то оси @var{x}, @var{y} и @var{z} изображаются на 
1331 трехмерных сценах.
1333 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1336 Пример:
1338 @example
1339 (%i1) load("draw")$
1340 (%i2) draw3d(axis_3d = false,
1341              explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
1342 @end example
1344 См. @code{axis_bottom},  @code{axis_left}, @code{axis_top} и @code{axis_right} для двух измерений.
1346 @opencatbox{Категории:}
1347 @category{Пакет draw}
1348 @closecatbox
1350 @end defvr
1356 @defvr {Графическая опция} palette
1357 Значение по умолчанию: @code{color}
1359 @code{palette} определяет, как отобразить реальные значения матрицы,
1360 передаваемые в объект @code{image}, в компоненты цвета.
1362 @code{palette} -- вектор тремя компонентами со значеним в пределах от -36 до +36.
1363 Каждое значение является индексом для формулы, отображающей уровни в красный,
1364 зеленый и синий цвета соответственно:
1365 @example
1366  0: 0               1: 0.5           2: 1
1367  3: x               4: x^2           5: x^3
1368  6: x^4             7: sqrt(x)       8: sqrt(sqrt(x))
1369  9: sin(90x)       10: cos(90x)     11: |x-0.5|
1370 12: (2x-1)^2       13: sin(180x)    14: |cos(180x)|
1371 15: sin(360x)      16: cos(360x)    17: |sin(360x)|
1372 18: |cos(360x)|    19: |sin(720x)|  20: |cos(720x)|
1373 21: 3x             22: 3x-1         23: 3x-2
1374 24: |3x-1|         25: |3x-2|       26: (3x-1)/2
1375 27: (3x-2)/2       28: |(3x-1)/2|   29: |(3x-2)/2|
1376 30: x/0.32-0.78125 31: 2*x-0.84     32: 4x;1;-2x+1.84;x/0.08-11.5
1377 33: |2*x - 0.5|    34: 2*x          35: 2*x - 0.5
1378 36: 2*x - 1
1379 @end example
1380 Отрицательные числа означают отрицательные цветовые компоненты.
1382 @code{palette = gray} и @code{palette = color} являются сокращениями 
1383 для @code{palette = [3,3,3]} и @code{palette = [7,5,15]} соответственно.
1385 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1388 Примеры:
1390 @example
1391 (%i1) load("draw")$
1392 (%i2) im: apply(
1393            'matrix,
1394             makelist(makelist(random(200),i,1,30),i,1,30))$
1395 (%i3) /* palette = color, default */
1396       draw2d(image(im,0,0,30,30))$
1397 (%i4) draw2d(palette = gray, image(im,0,0,30,30))$
1398 (%i5) draw2d(palette = [15,20,-4],
1399              colorbox=false,
1400              image(im,0,0,30,30))$
1401 @end example
1403 См. @code{colorbox}. 
1405 @opencatbox{Категории:}
1406 @category{Пакет draw}
1407 @closecatbox
1409 @end defvr
1414 @defvr {Графическая опция} colorbox
1415 Значение по умолчанию: @code{true}
1417 Если @code{colorbox} равно @code{true}, то палитра цветов изображается вместе с 
1418 объектами изображения @code{image}.
1420 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1423 Пример:
1425 @example
1426 (%i1) load("draw")$
1427 (%i2) im: apply('matrix,
1428                  makelist(makelist(random(200),i,1,30),i,1,30))$
1429 (%i3) draw2d(image(im,0,0,30,30))$
1430 (%i4) draw2d(colorbox=false, image(im,0,0,30,30))$
1431 @end example
1433 См. @code{palette}.
1435 @opencatbox{Категории:}
1436 @category{Пакет draw}
1437 @closecatbox
1439 @end defvr
1443 @defvr {Графическая опция} enhanced3d
1444 Значение по умолчанию: @code{false}
1446 Если @code{enhanced3d} равно @code{true}, то поверхности в трехмерных графиках окрашиваются,
1447 другими словами, включается Gnuplot мода pm3d.
1449 См. @code{palette} для того, чтобы узнать как задается палитра.
1451 Пример:
1453 @example
1454 (%i1) load("draw")$
1455 (%i2) draw3d(surface_hide = true,
1456              enhanced3d   = true,
1457              palette      = gray,
1458              explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$
1459 @end example
1461 @opencatbox{Категории:}
1462 @category{Пакет draw}
1463 @closecatbox
1465 @end defvr
1469 @defvr {Графическая опция} point_size
1470 Значение по умолчанию: 1
1472 @code{point_size} -- устанавливает размер изображаемых точек. 
1473 Значение должно быть неотрицательным числом.
1475 Эта опция влияет на следующие графические объекты:
1476 @itemize @bullet
1477 @item
1478 @code{gr2d}: @code{points}.
1480 @item
1481 @code{gr3d}: @code{points}.
1482 @end itemize
1484 Пример:
1486 @example
1487 (%i1) load("draw")$
1488 (%i2) draw2d(points(makelist([random(20),random(50)],k,1,10)),
1489         point_size = 5,
1490         points(makelist(k,k,1,20),makelist(random(30),k,1,20)))$
1491 @end example
1493 @opencatbox{Категории:}
1494 @category{Пакет draw}
1495 @closecatbox
1497 @end defvr
1501 @defvr {Графическая опция} point_type
1502 Значение по умолчанию: 1
1504 @code{point_type} определяет то, как изображаются изолированные точки.
1505 Значение этой опции может быть целое число больше или равное -1, 
1506 или имя стиля точки: @code{$none} (-1), @code{dot} (0), @code{plus} (1), @code{multiply} (2),
1507 @code{asterisk} (3), @code{square} (4), @code{filled_square} (5), @code{circle} (6),
1508 @code{filled_circle} (7), @code{up_triangle} (8), @code{filled_up_triangle} (9),
1509 @code{down_triangle} (10), @code{filled_down_triangle} (11), @code{diamant} (12) и
1510 @code{filled_diamant} (13).
1512 Эта опция влияет на следующие графические объекты:
1513 @itemize @bullet
1514 @item
1515 @code{gr2d}: @code{points}.
1517 @item
1518 @code{gr3d}: @code{points}.
1519 @end itemize
1521 Пример:
1523 @example
1524 (%i1) load("draw")$
1525 (%i2) draw2d(xrange = [0,10],
1526              yrange = [0,10],
1527              point_size = 3,
1528              point_type = diamant,
1529              points([[1,1],[5,1],[9,1]]),
1530              point_type = filled_down_triangle,
1531              points([[1,2],[5,2],[9,2]]),
1532              point_type = asterisk,
1533              points([[1,3],[5,3],[9,3]]),
1534              point_type = filled_diamant,
1535              points([[1,4],[5,4],[9,4]]),
1536              point_type = 5,
1537              points([[1,5],[5,5],[9,5]]),
1538              point_type = 6,
1539              points([[1,6],[5,6],[9,6]]),
1540              point_type = filled_circle,
1541              points([[1,7],[5,7],[9,7]]),
1542              point_type = 8,
1543              points([[1,8],[5,8],[9,8]]),
1544              point_type = filled_diamant,
1545              points([[1,9],[5,9],[9,9]]) )$
1546 @end example
1548 @opencatbox{Категории:}
1549 @category{Пакет draw}
1550 @closecatbox
1552 @end defvr
1556 @defvr {Графическая опция} points_joined
1557 Значение по умолчанию: @code{false}
1559 Если @code{points_joined} равно @code{true}, то точки соединяются линиями.
1561 Эта опция влияет на следующие графические объекты:
1562 @itemize @bullet
1563 @item
1564 @code{gr2d}: @code{points}.
1566 @item
1567 @code{gr3d}: @code{points}.
1568 @end itemize
1570 Пример:
1572 @example
1573 (%i1) load("draw")$
1574 (%i2) draw2d(xrange        = [0,10],
1575              yrange        = [0,4],
1576              point_size    = 3,
1577              point_type    = up_triangle,
1578              color         = blue,
1579              points([[1,1],[5,1],[9,1]]),
1580              points_joined = true,
1581              point_type    = square,
1582              line_type     = dots,
1583              points([[1,2],[5,2],[9,2]]),
1584              point_type    = circle,
1585              color         = red,
1586              line_width    = 7,
1587              points([[1,3],[5,3],[9,3]]) )$
1588 @end example
1590 @opencatbox{Категории:}
1591 @category{Пакет draw}
1592 @closecatbox
1594 @end defvr
1598 @defvr {Графическая опция} filled_func
1599 Значение по умолчанию: @code{false}
1601 Опция @code{filled_func} управляет то, как заполняются области,
1602 ограниченные функциями. Если @code{filled_func} равно @code{true}, 
1603 то область, ограниченная функцией, определенной объектом @code{explicit} 
1604 и низом графического окна, заполняется цветом @code{fill_color}. 
1605 Если @code{filled_func} содержит функциональное выражение, то будет заполнена область,
1606 ограниченная этой функцией и функцией, определенной объектом @code{explicit}.
1607 По умолчанию явные функции не заполняются. 
1609 Эта опция влияет только на двумерные графические объекты @code{explicit}.
1611 Пример:
1613 Область, ограниченная объектом @code{explicit} и низом графического окна.
1614 @example
1615 (%i1) load("draw")$
1616 (%i2) draw2d(fill_color  = red,
1617              filled_func = true,
1618              explicit(sin(x),x,0,10) )$
1619 @end example
1621 Область, ограниченная объектом @code{explicit} и функцией, определенной
1622 в @code{filled_func}. Отметим, что переменная в @code{filled_func} 
1623 должна быть той же, что и в @code{explicit}.
1624 @example
1625 (%i1) load("draw")$
1626 (%i2) draw2d(fill_color  = grey,
1627              filled_func = sin(x),
1628              explicit(-sin(x),x,0,%pi));
1629 @end example
1631 См. @code{fill_color} и @code{explicit}.
1633 @opencatbox{Категории:}
1634 @category{Пакет draw}
1635 @closecatbox
1637 @end defvr
1641 @defvr {Графическая опция} transparent
1642 Значение по умолчанию: @code{false}
1644 Если @code{transparent} равно @code{true}, то внутренняя область многоугольников
1645 заполняется в соответствии с @code{fill_color}.
1647 Эта опция влияет на следующие графические объекты:
1648 @itemize @bullet
1649 @item
1650 @code{gr2d}: @code{polygon}, @code{rectangle} и @code{ellipse}.
1651 @end itemize
1653 Пример:
1655 @example
1656 (%i1) load("draw")$
1657 (%i2) draw2d(polygon([[3,2],[7,2],[5,5]]),
1658              transparent = true,
1659              color       = blue,
1660              polygon([[5,2],[9,2],[7,5]]) )$
1661 @end example
1663 @opencatbox{Категории:}
1664 @category{Пакет draw}
1665 @closecatbox
1667 @end defvr
1671 @defvr {Графическая опция} border
1672 Значение по умолчанию: @code{true}
1674 Если @code{border} равно @code{true}, то границы многоугольников изображаются в
1675 соответствии с опциями @code{line_type} и @code{line_width}.
1677 Эта опция влияет на следующие графические объекты:
1678 @itemize @bullet
1679 @item
1680 @code{gr2d}: @code{polygon}, @code{rectangle} и @code{ellipse}.
1681 @end itemize
1683 Пример:
1685 @example
1686 (%i1) load("draw")$
1687 (%i2) draw2d(color       = brown,
1688              line_width  = 8,
1689              polygon([[3,2],[7,2],[5,5]]),
1690              border      = false,
1691              fill_color  = blue,
1692              polygon([[5,2],[9,2],[7,5]]) )$
1693 @end example
1695 @opencatbox{Категории:}
1696 @category{Пакет draw}
1697 @closecatbox
1699 @end defvr
1703 @defvr {Графическая опция} head_both
1704 Значение по умолчанию: @code{false}
1706 Если @code{head_both} равно @code{true}, то векторы изображаются со окончаниями в форме двух стрелок.
1707 Если @code{false}, то изображается только одна стрелка.
1709 Эта опция влияет только на объекты типа @code{vector}.
1711 Пример:
1713 @example
1714 (%i1) load("draw")$
1715 (%i2) draw2d(xrange      = [0,8],
1716              yrange      = [0,8],
1717              head_length = 0.7,
1718              vector([1,1],[6,0]),
1719              head_both   = true,
1720              vector([1,7],[6,0]) )$
1721 @end example
1723 См. @code{head_length}, @code{head_angle} и @code{head_type}. 
1725 @opencatbox{Категории:}
1726 @category{Пакет draw}
1727 @closecatbox
1729 @end defvr
1733 @defvr {Графическая опция} head_length
1734 Значение по умолчанию: 2
1736 @code{head_length} задает длину наконечника стрелок в единицах оси @var{x}.
1738 Эта опция влияет только на объекты типа @code{vector}.
1740 Пример:
1742 @example
1743 (%i1) load("draw")$
1744 (%i2) draw2d(xrange      = [0,12],
1745              yrange      = [0,8],
1746              vector([0,1],[5,5]),
1747              head_length = 1,
1748              vector([2,1],[5,5]),
1749              head_length = 0.5,
1750              vector([4,1],[5,5]),
1751              head_length = 0.25,
1752              vector([6,1],[5,5]))$
1753 @end example
1755 См. @code{head_both}, @code{head_angle} и @code{head_type}. 
1757 @opencatbox{Категории:}
1758 @category{Пакет draw}
1759 @closecatbox
1761 @end defvr
1765 @defvr {Графическая опция} head_angle
1766 Значение по умолчанию: 45
1768 @code{head_angle} задает угол в градусах между стронами наконечника стрелки и ее осью.
1770 Эта опция влияет только на объекты типа @code{vector}.
1772 Пример:
1774 @example
1775 (%i1) load("draw")$
1776 (%i2) draw2d(xrange      = [0,10],
1777              yrange      = [0,9],
1778              head_length = 0.7,
1779              head_angle  = 10,
1780              vector([1,1],[0,6]),
1781              head_angle  = 20,
1782              vector([2,1],[0,6]),
1783              head_angle  = 30,
1784              vector([3,1],[0,6]),
1785              head_angle  = 40,
1786              vector([4,1],[0,6]),
1787              head_angle  = 60,
1788              vector([5,1],[0,6]),
1789              head_angle  = 90,
1790              vector([6,1],[0,6]),
1791              head_angle  = 120,
1792              vector([7,1],[0,6]),
1793              head_angle  = 160,
1794              vector([8,1],[0,6]),
1795              head_angle  = 180,
1796              vector([9,1],[0,6]) )$
1797 @end example
1799 См. @code{head_both}, @code{head_length} и @code{head_type}. 
1801 @opencatbox{Категории:}
1802 @category{Пакет draw}
1803 @closecatbox
1805 @end defvr
1809 @defvr {Графическая опция} head_type
1810 Значение по умолчанию: @code{filled}
1812 @code{head_type} задает способ изображения наконечника стрелок. 
1813 Возможны значения: @code{filled} (замкнутые и заполненные наконечники), @code{empty}
1814 (замкнутые и пустые наконечники) и @code{nofilled} (открытые наконечники).
1816 Эта опция влияет только на объекты типа @code{vector}.
1818 Пример:
1820 @example
1821 (%i1) load("draw")$
1822 (%i2) draw2d(xrange      = [0,12],
1823              yrange      = [0,10],
1824              head_length = 1,
1825              vector([0,1],[5,5]), /* default type */
1826              head_type = 'empty,
1827              vector([3,1],[5,5]),
1828              head_type = 'nofilled,
1829              vector([6,1],[5,5]))$
1830 @end example
1832 См. @code{head_both}, @code{head_angle} и @code{head_length}. 
1834 @opencatbox{Категории:}
1835 @category{Пакет draw}
1836 @closecatbox
1838 @end defvr
1841 @defvr {Графическая опция} unit_vectors
1842 Значение по умолчанию: @code{false}
1844 Если @code{unit_vectors} равно @code{true}, все вектора изображаются с единичной длиной.
1845 Это полезно при изображении векторных полей. Если @code{unit_vectors} равно @code{false},
1846 то вектора изображаются с их настоящей длиной.
1848 Эта опция влияет только на объекты типа @code{vector}.
1850 Пример:
1852 @example
1853 (%i1) load("draw")$
1854 (%i2) draw2d(xrange      = [-1,6],
1855              yrange      = [-1,6],
1856              head_length = 0.1,
1857              vector([0,0],[5,2]),
1858              unit_vectors = true,
1859              color        = red,
1860              vector([0,3],[5,2]))$
1861 @end example
1863 @opencatbox{Категории:}
1864 @category{Пакет draw}
1865 @closecatbox
1867 @end defvr
1870 @defvr {Графическая опция} label_alignment
1871 Значение по умолчанию: @code{center}
1873 @code{label_alignment} определяет положение меток, по отношению к заданным координатам. 
1874 Возможны значения: @code{center},
1875 @code{left} и @code{right}.
1877 Эта опция влияет только на объекты типа @code{label}.
1879 Пример:
1881 @example
1882 (%i1) load("draw")$
1883 (%i2) draw2d(xrange          = [0,10],
1884              yrange          = [0,10],
1885              points_joined   = true,
1886              points([[5,0],[5,10]]),
1887              color           = blue,
1888              label(["Centered alignment (default)",5,2]),
1889              label_alignment = 'left,
1890              label(["Left alignment",5,5]),
1891              label_alignment = 'right,
1892              label(["Right alignment",5,8]))$
1893 @end example
1895 См. @code{label_orientation} и @code{color}. 
1897 @opencatbox{Категории:}
1898 @category{Пакет draw}
1899 @closecatbox
1901 @end defvr
1905 @defvr {Графическая опция} label_orientation
1906 Значение по умолчанию: @code{horizontal}
1908 @code{label_orientation} определяет ориентацию меток.
1909 Возможны значения: @code{horizontal} и @code{vertical}.
1911 Эта опция влияет только на объекты типа @code{label}.
1913 Пример:
1915 В этом примере к изображению добавлена фиктивная точка.
1916 Пакет @code{draw} требует непустые данные, чтобы изобразить сцену.
1917 @example
1918 (%i1) load("draw")$
1919 (%i2) draw2d(xrange     = [0,10],
1920              yrange     = [0,10],
1921              point_size = 0,
1922              points([[5,5]]),
1923              color      = navy,
1924              label(["Horizontal orientation (default)",5,2]),
1925              label_orientation = 'vertical,
1926              color             = "#654321",
1927              label(["Vertical orientation",1,5]))$
1928 @end example
1930 См. @code{label_alignment} и @code{color}. 
1932 @opencatbox{Категории:}
1933 @category{Пакет draw}
1934 @closecatbox
1936 @end defvr
1940 @defvr {Графическая опция} color
1941 Значение по умолчанию: @code{"black"}
1943 @code{color} задает цвет линий, точек, границ многоугольников и меток.
1945 Цвет может быть задан как наименование или как шестнадцатиричный @i{rgb} код.
1947 Доступны следующие наименования цветов: 
1948 @code{"white"}, @code{"black"}, @code{"gray0"}, @code{"grey0"}, @code{"gray10"},
1949 @code{"grey10"}, @code{"gray20"}, @code{"grey20"}, @code{"gray30"}, @code{"grey30"},
1950 @code{"gray40"}, @code{"grey40"}, @code{"gray50"}, @code{"grey50"}, @code{"gray60"},
1951 @code{"grey60"}, @code{"gray70"}, @code{"grey70"}, @code{"gray80"}, @code{"grey80"},
1952 @code{"gray90"}, @code{"grey90"}, @code{"gray100"}, @code{"grey100"}, @code{"gray"},
1953 @code{"grey"}, @code{"light-gray"}, @code{"light-grey"}, @code{"dark-gray"},
1954 @code{"dark-grey"}, @code{"red"}, @code{"light-red"}, @code{"dark-red"}, @code{"yellow"},
1955 @code{"light-yellow"}, @code{"dark-yellow"}, @code{"green"}, @code{"light-green"},
1956 @code{"dark-green"}, @code{"spring-green"}, @code{"forest-green"}, @code{"sea-green"},
1957 @code{"blue"}, @code{"light-blue"}, @code{"dark-blue"}, @code{"midnight-blue"}, 
1958 @code{"navy"}, @code{"medium-blue"}, @code{"royalblue"}, @code{"skyblue"}, 
1959 @code{"cyan"}, @code{"light-cyan"}, @code{"dark-cyan"}, @code{"magenta"}, 
1960 @code{"light-magenta"}, @code{"dark-magenta"}, @code{"turquoise"}, 
1961 @code{"light-turquoise"}, @code{"dark-turquoise"}, @code{"pink"}, @code{"light-pink"},
1962 @code{"dark-pink"}, @code{"coral"}, @code{"light-coral"}, @code{"orange-red"},
1963 @code{"salmon"}, @code{"light-salmon"}, @code{"dark-salmon"}, @code{"aquamarine"},
1964 @code{"khaki"}, @code{"dark-khaki"}, @code{"goldenrod"}, @code{"light-goldenrod"},
1965 @code{"dark-goldenrod"}, @code{"gold"}, @code{"beige"}, @code{"brown"}, @code{"orange"},
1966 @code{"dark-orange"}, @code{"violet"}, @code{"dark-violet"}, @code{"plum"} и @code{"purple"}.
1968 Цветовые компоненты в шестнадцатиричном коде представляются в форме @code{"#rrggbb"}.
1970 Пример:
1972 @example
1973 (%i1) load("draw")$
1974 (%i2) draw2d(explicit(x^2,x,-1,1), /* default is black */
1975              color = "red",
1976              explicit(0.5 + x^2,x,-1,1),
1977              color = blue,
1978              explicit(1 + x^2,x,-1,1),
1979              color = "light-blue", /* double quotes if - is used */
1980              explicit(1.5 + x^2,x,-1,1),
1981              color = "#23ab0f",
1982              label(["This is a label",0,1.2])  )$
1983 @end example
1985 См. @code{fill_color}.
1987 @opencatbox{Категории:}
1988 @category{Пакет draw}
1989 @closecatbox
1991 @end defvr
1995 @defvr {Графическая опция} fill_color
1996 Значение по умолчанию: @code{"red"}
1998 @code{fill_color} определяет цвет для заполнения многоугольников и двумерных @code{explicit} функций.
2000 См. @code{color} для способа задания цвета.
2002 @opencatbox{Категории:}
2003 @category{Пакет draw}
2004 @closecatbox
2006 @end defvr
2010 @defvr {Графическая опция} fill_density
2011 Значение по умолчанию: 0
2013 @code{fill_density} -- число от 0 до 1, которое задает интенсивность 
2014 цвета @code{fill_color} в объектах @code{bars}.
2016 См. @code{bars} для примеров.
2018 @opencatbox{Категории:}
2019 @category{Пакет draw}
2020 @closecatbox
2022 @end defvr
2026 @defvr {Графическая опция} line_width
2027 Значение по умолчанию: 1
2029 @code{line_width} -- ширина изображаемых линий.
2030 Значение должно быть положительным числом.
2032 Эта опция влияет на следующие графические объекты:
2033 @itemize @bullet
2034 @item
2035 @code{gr2d}: @code{points}, @code{polygon}, @code{rectangle}, 
2036 @code{ellipse}, @code{vector}, @code{explicit}, @code{implicit}, 
2037 @code{parametric} и @code{polar}.
2039 @item
2040 @code{gr3d}: @code{points} и @code{parametric}.
2041 @end itemize
2043 Пример:
2045 @example
2046 (%i1) load("draw")$
2047 (%i2) draw2d(explicit(x^2,x,-1,1), /* default width */
2048              line_width = 5.5,
2049              explicit(1 + x^2,x,-1,1),
2050              line_width = 10,
2051              explicit(2 + x^2,x,-1,1))$
2052 @end example
2054 См. @code{line_type}.
2056 @opencatbox{Категории:}
2057 @category{Пакет draw}
2058 @closecatbox
2060 @end defvr
2064 @defvr {Графическая опция} line_type
2065 Значение по умолчанию: @code{solid}
2067 @code{line_type} -- задает стиль изображения линий.
2068 Возможные значения: @code{solid} и @code{dots}.
2070 Эта опция влияет на следующие графические объекты:
2071 @itemize @bullet
2072 @item
2073 @code{gr2d}: @code{points}, @code{polygon}, @code{rectangle}, 
2074 @code{ellipse}, @code{vector}, @code{explicit}, @code{implicit}, 
2075 @code{parametric} и @code{polar}.
2077 @item
2078 @code{gr3d}: @code{points}, @code{explicit}, @code{parametric} и @code{parametric_surface}.
2079 @end itemize
2081 Пример:
2083 @example
2084 (%i1) load("draw")$
2085 (%i2) draw2d(line_type = dots,
2086              explicit(1 + x^2,x,-1,1),
2087              line_type = solid, /* default */
2088              explicit(2 + x^2,x,-1,1))$
2089 @end example
2091 См. @code{line_width}.
2093 @opencatbox{Категории:}
2094 @category{Пакет draw}
2095 @closecatbox
2097 @end defvr
2101 @defvr {Графическая опция} nticks
2102 Значение по умолчанию: 30
2104 @code{nticks} -- число пробных точек, используемых в графических процедурах.
2106 Эта опция влияет на следующие графические объекты:
2107 @itemize @bullet
2108 @item
2109 @code{gr2d}: @code{ellipse}, @code{explicit}, @code{parametric} и @code{polar}.
2111 @item
2112 @code{gr3d}: @code{parametric}.
2113 @end itemize
2115 Пример:
2117 @example
2118 (%i1) load("draw")$
2119 (%i2) draw2d(transparent = true,
2120              ellipse(0,0,4,2,0,180),
2121              nticks = 5,
2122              ellipse(0,0,4,2,180,180) )$
2123 @end example
2125 @opencatbox{Категории:}
2126 @category{Пакет draw}
2127 @closecatbox
2129 @end defvr
2133 @defvr {Графическая опция} adapt_depth
2134 Значение по умолчанию: 10
2136 @code{adapt_depth} -- максимальное число разбиений, используемое в адаптивных графиках.
2138 Эта опция влияет только на двумерные @code{explicit} функции.
2140 @opencatbox{Категории:}
2141 @category{Пакет draw}
2142 @closecatbox
2144 @end defvr
2148 @defvr {Графическая опция} key
2149 Значение по умолчанию: @code{""} (пустая строка)
2151 @code{key} -- наименование функции в легенде. Если @code{key} -- пустая строка, то ничего не изображается.
2153 Эта опция влияет на следующие графические объекты:
2154 @itemize @bullet
2155 @item
2156 @code{gr2d}: @code{points}, @code{polygon}, @code{rectangle},
2157 @code{ellipse}, @code{vector}, @code{explicit}, @code{implicit},
2158 @code{parametric} и @code{polar}.
2160 @item
2161 @code{gr3d}: @code{points}, @code{explicit}, @code{parametric}
2162 и @code{parametric_surface}.
2163 @end itemize
2165 Пример:
2167 @example
2168 (%i1) load("draw")$
2169 (%i2) draw2d(key   = "Sinus",
2170              explicit(sin(x),x,0,10),
2171              key   = "Cosinus",
2172              color = red,
2173              explicit(cos(x),x,0,10) )$
2174 @end example
2176 @opencatbox{Категории:}
2177 @category{Пакет draw}
2178 @closecatbox
2180 @end defvr
2184 @defvr {Графическая опция} xu_grid
2185 Значение по умолчанию: 30
2187 @code{xu_grid} -- число координат первой переменной
2188 (@code{x} в явной и @code{u} в параметрической трехмерной поверхности) 
2189 для построения сетки пробных точек.
2191 Эта опция влияет на следующие графические объекты:
2192 @itemize @bullet
2193 @item
2194 @code{gr3d}: @code{explicit} и @code{parametric_surface}.
2195 @end itemize
2197 Пример:
2199 @example
2200 (%i1) load("draw")$
2201 (%i2) draw3d(xu_grid = 10,
2202              yv_grid = 50,
2203              explicit(x^2+y^2,x,-3,3,y,-3,3) )$
2204 @end example
2206 См. @code{yv_grid}.
2208 @opencatbox{Категории:}
2209 @category{Пакет draw}
2210 @closecatbox
2212 @end defvr
2216 @defvr {Графическая опция} yv_grid
2217 Значение по умолчанию: 30
2219 @code{yv_grid} -- число координат второй переменной
2220 (@code{y} в явной и @code{v} в параметрической трехмерной поверхности) 
2221 для построения сетки пробных точек.
2223 Эта опция влияет на следующие графические объекты:
2224 @itemize @bullet
2225 @item
2226 @code{gr3d}: @code{explicit} и @code{parametric_surface}.
2227 @end itemize
2229 Пример:
2231 @example
2232 (%i1) load("draw")$
2233 (%i2) draw3d(xu_grid = 10,
2234              yv_grid = 50,
2235              explicit(x^2+y^2,x,-3,3,y,-3,3) )$
2236 @end example
2238 См. @code{xu_grid}.
2240 @opencatbox{Категории:}
2241 @category{Пакет draw}
2242 @closecatbox
2244 @end defvr
2248 @defvr {Графическая опция} surface_hide
2249 Значение по умолчанию: @code{false}
2251 Если @code{surface_hide} равно @code{true}, то скрытые части на трехмерных поверхностях не изображаются.
2253 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
2256 Пример:
2258 @example
2259 (%i1) load("draw")$
2260 (%i2) draw(columns=2,
2261            gr3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3)),
2262            gr3d(surface_hide = true,
2263                 explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3)) )$
2264 @end example
2266 @opencatbox{Категории:}
2267 @category{Пакет draw}
2268 @closecatbox
2270 @end defvr
2274 @defvr {Графическая опция} contour
2275 Значение по умолчанию: @code{none}
2277 Опция @code{contour} позволяет пользователю выбрать, где изображать контурные линии.
2278 Доступны следующие значения:
2280 @itemize @bullet
2282 @item
2283 @code{none}:
2284 нет контурных линий.
2286 @item
2287 @code{base}:
2288 контурные линии изображаются на xy плоскости.
2290 @item
2291 @code{surface}:
2292 контурные линии изображаются на поверхности.
2294 @item
2295 @code{both}:
2296 две контурные линии -- на поверхности и на плоскости xy.
2298 @item
2299 @code{map}:
2300 контурные линии проецируются на плоскость xy, а точка наблюдения расположена
2301 вертикально над этой плоскостью.
2303 @end itemize
2305 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
2308 Пример:
2310 @example
2311 (%i1) load("draw")$
2312 (%i2) draw3d(explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
2313              contour_levels = 15,
2314              contour        = both,
2315              surface_hide   = true) $
2316 @end example
2318 @opencatbox{Категории:}
2319 @category{Пакет draw}
2320 @closecatbox
2322 @end defvr
2326 @defvr {Графическая опция} contour_levels
2327 Значение по умолчанию: 5
2329 Эта опция управляет способом изображения контуров. 
2330 @code{contour_levels} может иметь значение в виде положительного целого числа, 
2331 списка трех чисел или произвольного набора чисел:
2333 @itemize @bullet
2334 @item
2335 Если @code{contour_levels} равно положительному целому числу @var{n},
2336 то будет изображено @var{n} контурных линий через равный интервал. 
2337 По умолчанию изображается пять равноудаленных контурных линий.
2339 @item
2340 Если @code{contour_levels} равно списку трех чисел @code{[lowest,s,highest]}, 
2341 то контурные линии изображаются с @code{lowest} по @code{highest} с шагом @code{s}.
2343 @item
2344 Если @code{contour_levels} равно набору чисел   @code{@{n1, n2, ...@}}, 
2345 то контурные линии изображаются для значений @code{n1}, @code{n2}, ...
2346 @end itemize
2348 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
2351 Примеры:
2353 Контурные линии, расположенные на равном расстоянии. 
2354 Число уровней можно настраивать.
2355 @example
2356 (%i1) load("draw")$
2357 (%i2) draw3d(color = green,
2358              explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
2359              contour_levels = 10,
2360              contour        = both,
2361              surface_hide   = true) $
2362 @end example
2365 Контурные линии от -8 до 8 с шагом 4.
2366 @example
2367 (%i1) load("draw")$
2368 (%i2) draw3d(color = green,
2369              explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
2370              contour_levels = [-8,4,8],
2371              contour        = both,
2372              surface_hide   = true) $
2373 @end example
2375 Контурные линии на уровне -7, -6, 0.8 и 5.
2376 @example
2377 (%i1) load("draw")$
2378 (%i2) draw3d(color = green,
2379              explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
2380              contour_levels = @{-7, -6, 0.8, 5@},
2381              contour        = both,
2382              surface_hide   = true) $
2383 @end example
2385 См. @code{contour}.
2387 @opencatbox{Категории:}
2388 @category{Пакет draw}
2389 @closecatbox
2391 @end defvr
2395 @defvr {Графическая опция} columns
2396 Значение по умолчанию: 1
2398 @code{columns} число колонок в множественных графиках.
2400 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
2401 Она также может использоваться как аргумент функции @code{draw}.
2403 Пример:
2405 @example
2406 (%i1) load("draw")$
2407 (%i2) scene1: gr2d(title="Ellipse",
2408                    nticks=30,
2409                    parametric(2*cos(t),5*sin(t),t,0,2*%pi))$
2410 (%i3) scene2: gr2d(title="Triangle",
2411                    polygon([4,5,7],[6,4,2]))$
2412 (%i4) draw(scene1, scene2, columns = 2)$
2413 @end example
2415 @opencatbox{Категории:}
2416 @category{Пакет draw}
2417 @closecatbox
2419 @end defvr
2423 @defvr {Графическая опция} ip_grid
2424 Значение по умолчанию: @code{[50, 50]}
2426 @code{ip_grid} задает решетку для первой пробной выборки для неявных графиков.
2428 Эта опция влияет только на объекты типа @code{implicit}.
2430 @opencatbox{Категории:}
2431 @category{Пакет draw}
2432 @closecatbox
2434 @end defvr
2438 @defvr {Графическая опция} ip_grid_in
2439 Значение по умолчанию: @code{[5, 5]}
2441 @code{ip_grid_in} задает решетку для второй пробной выборки для неявных графиков.
2443 Эта опция влияет только на объекты типа @code{implicit}.
2445 @opencatbox{Категории:}
2446 @category{Пакет draw}
2447 @closecatbox
2449 @end defvr
2452 @defvr {Графическая опция} x_voxel
2453 Значение по умолчанию: 10
2455 @code{x_voxel} есть число вокселей в направлении x, используемых в
2456 @i{алгоритме марширующих кубов}, реализованном лоя трехмерных @code{implicit} объектов.
2458 @opencatbox{Категории:}
2459 @category{Пакет draw}
2460 @closecatbox
2462 @end defvr
2464 @defvr {Графическая опция} y_voxel
2465 Значение по умолчанию: 10
2467 @code{y_voxel} есть число вокселей в направлении y, используемых в
2468 @i{алгоритме марширующих кубов}, реализованном лоя трехмерных @code{implicit} объектов.
2470 @opencatbox{Категории:}
2471 @category{Пакет draw}
2472 @closecatbox
2474 @end defvr
2476 @defvr {Графическая опция} z_voxel
2477 Значение по умолчанию: 10
2479 @code{z_voxel} есть число вокселей в направлении z, используемых в
2480 @i{алгоритме марширующих кубов}, реализованном лоя трехмерных @code{implicit} объектов.
2482 @opencatbox{Категории:}
2483 @category{Пакет draw}
2484 @closecatbox
2486 @end defvr
2489 @deffn {Конструктор сцены} gr2d (@var{графическая опция}, ..., @var{графический объект}, ...)
2491 Функция @code{gr2d} строит объект, который описывает двумерную сцену. 
2492 Аргументы есть @i{графические опции} и @i{графические объекты}. 
2493 Эта сцена интерпретируется последовательно: @i{графические опции} влияет на @i{графические объекты},
2494 расположенные справа от них. Некоторые @i{графические опции} глобально влияют на вид сцены.
2496 Это список @i{графических объектов}, доступных для сцены в двух измерениях:
2497 @code{points}, @code{polygon}, @code{rectangle}, @code{bars}, @code{ellipse}, @code{label},
2498 @code{vector}, @code{explicit}, @code{implicit}, @code{polar}, @code{parametric},
2499 @code{image} и @code{geomap}.
2501 См. следующие глобальные @i{графические опции}: @code{xrange}, @code{yrange}, 
2502 @code{logx}, @code{logy}, @code{terminal}, @code{grid}, @code{title}, 
2503 @code{xlabel}, @code{ylabel}, @code{xtics}, @code{ytics}, @code{xtics_rotate}, 
2504 @code{ytics_rotate}, @code{xtics_axis}, @code{ytics_axis}, @code{xaxis}, @code{yaxis}, 
2505 @code{xaxis_width}, @code{yaxis_width}, 
2506 @code{xaxis_type}, @code{yaxis_type}, 
2507 @code{xaxis_color}, @code{yaxis_color}, @code{xy_file}, 
2508 @code{file_name}, @code{pic_width}, @code{pic_height}, 
2509 @code{eps_width}, @code{eps_height},
2510 @code{user_preamble}, @code{axis_bottom}, @code{axis_left}, @code{axis_top} 
2511 и @code{axis_right}.
2513 Для того, чтобы использовать эту функцию, ее следует загрузить командой @code{load("draw")}.
2515 @opencatbox{Категории:}
2516 @category{Пакет draw}
2517 @closecatbox
2519 @end deffn
2522 @deffn {Конструктор сцены} gr3d (@var{графическая опция}, ..., @var{графический объект}, ...)
2524 Функция @code{gr3d} строит объект, который описывает трехмерную сцену. 
2525 Аргументы есть @i{графические опции} и @i{графические объекты}. 
2526 Эта сцена интерпретируется последовательно: @i{графические опции} влияет на @i{графические объекты},
2527 неположенные справа от них. Некоторые @i{графические опции} глобально влияют на вид сцены.
2529 Это список @i{графических объектов}, доступных для сцены в трех измерениях:
2530 @code{points}, @code{label}, @code{vector}, @code{explicit}, @code{implicit},
2531 @code{parametric}, @code{parametric_surface} и @code{geomap}.
2533 См. следующие @i{графические опции}: @code{xrange}, @code{yrange}, 
2534 @code{zrange}, @code{logx}, @code{logy}, @code{logz}, @code{terminal}, 
2535 @code{grid}, @code{title}, @code{xlabel}, @code{ylabel}, @code{zlabel}, 
2536 @code{xtics}, @code{ytics}, @code{ztics}, @code{xtics_rotate}, 
2537 @code{ytics_rotate}, @code{ztics_rotate}, @code{xtics_axis}, @code{ytics_axis}, 
2538 @code{ztics_axis}, @code{xaxis}, @code{yaxis}, @code{zaxis}, 
2539 @code{xaxis_width}, @code{yaxis_width}, @code{zaxis_width}, 
2540 @code{xaxis_type}, @code{yaxis_type}, @code{zaxis_type},
2541 @code{xaxis_color}, @code{yaxis_color}, @code{zaxis_color}, @code{xy_file}, 
2542 @code{user_preamble}, @code{axis_bottom}, @code{axis_left}, 
2543 @code{axis_top}, @code{file_name}, @code{pic_width}, @code{pic_height}, 
2544 @code{eps_width}, @code{eps_height},
2545 @code{axis_right}, @code{rot_vertical}, @code{rot_horizontal}, 
2546 @code{axis_3d}, @code{xu_grid}, @code{yv_grid}, @code{surface_hide}, 
2547 @code{contour}, @code{contour_levels}, @code{palette}, @code{colorbox}
2548 и @code{enhanced3d}.
2550 Для того, чтобы использовать эту функцию, ее следует загрузить командой @code{load("draw")}.
2552 @opencatbox{Категории:}
2553 @category{Пакет draw}
2554 @closecatbox
2556 @end deffn
2564 @deffn  {Графический объект} points ([[@var{x1},@var{y1}], [@var{x2},@var{y2}],...])
2565 @deffnx {Графический объект} points ([@var{x1},@var{x2},...], [@var{y1},@var{y2},...])
2566 @deffnx {Графический объект} points ([@var{y1},@var{y2},...])
2567 @deffnx {Графический объект} points ([[@var{x1},@var{y1},@var{z1}], [@var{x2},@var{y2},@var{z2}],...])
2568 @deffnx {Графический объект} points ([@var{x1},@var{x2},...], [@var{y1},@var{y2},...], [@var{z1},@var{z2},...])
2569 @deffnx {Графический объект} points (@var{matrix})
2570 Строит точки в двух и трех измерениях.
2572 Следующие @i{графические опции} влияют на этот объект: @code{point_size}, 
2573 @code{point_type}, @code{points_joined}, @code{line_width}, @code{key},
2574 @code{line_type} и @code{color}.
2576 @b{Два измерения}
2578 @code{points ([[@var{x1},@var{y1}], [@var{x2},@var{y2}],...])} или
2579 @code{points ([@var{x1},@var{x2},...], [@var{y1},@var{y2},...])}
2580 строит точки с координатами @code{[x1,y1]}, @code{[x2,y2]}, и т.д. 
2581 Если абсциссы не заданы, то они принимаются равными последовательным
2582 положительным числам, так что 
2583 @code{points ([@var{y1},@var{y2},...])} строит точки @code{[1,@var{y1}]}, @code{[2,@var{y2}]}, и т.д.
2584 Если @var{matrix} -- матрица из двух строк или столбцов, то @code{points (@var{matrix})}
2585 строит соответствующие точки. Если @var{matrix} -- матрица из одной строки или одного столбца,
2586 то абсциссы выбираются автоматически.
2588 Пример:
2590 @example
2591 (%i1) load("draw")$
2592 (%i2) draw2d(
2593         key = "Small points",
2594         points(makelist([random(20),random(50)],k,1,10)),
2595         point_type    = circle,
2596         point_size    = 3,
2597         points_joined = true,
2598         key           = "Great points",
2599         points(makelist(k,k,1,20),makelist(random(30),k,1,20)),
2600         point_type    = filled_down_triangle,
2601         key           = "Automatic abscissas",
2602         color         = red,
2603         points([2,12,8]))$
2604 @end example
2606 @b{Три измерения}
2608 @code{points ([[@var{x1},@var{y1},@var{z1}], [@var{x2},@var{y2},@var{z2}],...])} или
2609 @code{points ([@var{x1},@var{x2},...], [@var{y1},@var{y2},...], [@var{z1},@var{z2},...])}
2610 строит точки с координатами @code{[@var{x1},@var{y1},@var{z1}]}, @code{[@var{x2},@var{y2},@var{z2}]}, и т.д.
2611 Если @var{matrix} -- матрица из трех строк или трех столбцов, то @code{points (@var{matrix})}
2612 строит соответствующие точки.
2614 Примеры:
2616 Одна трехмерная выборка:
2617 @example
2618 (%i1) load("draw")$
2619 (%i2) load ("numericalio")$
2620 (%i3) s2 : read_matrix (file_search ("wind.data"))$
2621 (%i4) draw3d(title = "Daily average wind speeds",
2622              point_size = 2,
2623              points(args(submatrix (s2, 4, 5))) )$
2624 @end example
2626 Две трехмерные выборки:
2627 @example
2628 (%i1) load("draw")$
2629 (%i2) load ("numericalio")$
2630 (%i3) s2 : read_matrix (file_search ("wind.data"))$
2631 (%i4) draw3d(
2632          title = "Daily average wind speeds. Two data sets",
2633          point_size = 2,
2634          key        = "Sample from stations 1, 2 and 3",
2635          points(args(submatrix (s2, 4, 5))),
2636          point_type = 4,
2637          key        = "Sample from stations 1, 4 and 5",
2638          points(args(submatrix (s2, 2, 3))) )$
2639 @end example
2641 @opencatbox{Категории:}
2642 @category{Пакет draw}
2643 @closecatbox
2645 @end deffn
2648 @deffn  {Графический объект} polygon ([[@var{x1},@var{y1}], [@var{x2},@var{y2}],...])
2649 @deffnx {Графический объект} polygon ([@var{x1},@var{x2},...], [@var{y1},@var{y2},...])
2650 Строит многоугольник в двух измерениях.
2652 @b{Два измерения}
2654 @code{polygon ([[@var{x1},@var{y1}], [@var{x2},@var{y2}],...])} или 
2655 @code{polygon ([@var{x1},@var{x2},...], [@var{y1},@var{y2},...])}:
2656 строит на плоскости многоугольник с вершинами @code{[@var{x1},@var{y1}]}, @code{[@var{x2},@var{y2}]}, и т.д.
2658 Следующие @i{графические опции} влияют на этот объект: @code{transparent}, 
2659 @code{fill_color}, @code{border}, @code{line_width}, @code{key},
2660 @code{line_type} и @code{color}.
2662 Пример:
2664 @example
2665 (%i1) load("draw")$
2666 (%i2) draw2d(color      = "#e245f0",
2667              line_width = 8,
2668              polygon([[3,2],[7,2],[5,5]]),
2669              border      = false,
2670              fill_color  = yellow,
2671              polygon([[5,2],[9,2],[7,5]]) )$
2672 @end example
2674 @opencatbox{Категории:}
2675 @category{Пакет draw}
2676 @closecatbox
2678 @end deffn
2681 @deffn  {Графический объект} rectangle ([@var{x1},@var{y1}], [@var{x2},@var{y2}])
2682 Строит прямоугольники в двух измерениях.
2684 @b{Два измерения}
2686 @code{rectangle ([@var{x1},@var{y1}], [@var{x2},@var{y2}])} строит прямоугольник с противоположными вершинами
2687 @code{[@var{x1},@var{y1}]} и @code{[@var{x2},@var{y2}]}.
2689 Следующие @i{графические опции} влияют на этот объект: @code{transparent}, 
2690 @code{fill_color}, @code{border}, @code{line_width}, @code{key},
2691 @code{line_type} и @code{color}.
2693 Пример:
2695 @example
2696 (%i1) load("draw")$
2697 (%i2) draw2d(fill_color  = red,
2698              line_width  = 6,
2699              line_type   = dots,
2700              transparent = false,
2701              fill_color  = blue,
2702              rectangle([-2,-2],[8,-1]), /* opposite vertices */
2703              transparent = true,
2704              line_type   = solid,
2705              line_width  = 1,
2706              rectangle([9,4],[2,-1.5]),
2707              xrange      = [-3,10],
2708              yrange      = [-3,4.5] )$
2709 @end example
2711 @opencatbox{Категории:}
2712 @category{Пакет draw}
2713 @closecatbox
2715 @end deffn
2719 @deffn  {Графический объект} bars ([@var{x1},@var{h1},@var{w1}], [@var{x2},@var{h2},@var{w2}, ...])
2720 Строит вертикальные полоски в двух измерениях.
2722 @b{Два измерения}
2724 @code{bars ([@var{x1},@var{h1},@var{w1}], [@var{x2},@var{h2},@var{w2}, ...])} 
2725 Строит полоски с центрами на @var{x1}, @var{x2}, ... с высотами @var{h1}, @var{h2}, ...
2726 и ширинами @var{w1}, @var{w2}, ...
2728 Следующие @i{графические опции} влияют на этот объект: @code{key}, 
2729 @code{fill_color}, @code{fill_density} и @code{line_width}.
2731 Пример:
2733 @example
2734 (%i1) load("draw")$
2735 (%i2) draw2d(
2736        key          = "Group A",
2737        fill_color   = blue,
2738        fill_density = 0.2,
2739        bars([0.8,5,0.4],[1.8,7,0.4],[2.8,-4,0.4]),
2740        key          = "Group B",
2741        fill_color   = red,
2742        fill_density = 0.6,
2743        line_width   = 4,
2744        bars([1.2,4,0.4],[2.2,-2,0.4],[3.2,5,0.4]),
2745        xaxis = true);
2746 @end example
2748 @opencatbox{Категории:}
2749 @category{Пакет draw}
2750 @closecatbox
2752 @end deffn
2756 @deffn  {Графический объект} ellipse (@var{xc}, @var{yc}, @var{a}, @var{b}, @var{ang1}, @var{ang2})
2757 Строит эллипсы и круги в двух измерениях.
2760 @b{Два измерения}
2762 @code{ellipse (@var{xc}, @var{yc}, @var{a}, @var{b}, @var{ang1}, @var{ang2})}
2763 строит эллипс с центром в @code{[@var{xc}, @var{yc}]} с горизонтальной и вертикальной 
2764 полу-осями @var{a} и @var{b} соответственно от угла @var{ang1} до угла
2765 @var{ang2}.
2767 Следующие @i{графические опции} влияют на этот объект: @code{nticks}, 
2768 @code{transparent}, @code{fill_color}, @code{border}, @code{line_width}, 
2769 @code{line_type}, @code{key} и @code{color}.
2771 Пример:
2773 @example
2774 (%i1) load("draw")$
2775 (%i2) draw2d(transparent = false,
2776              fill_color  = red,
2777              color       = gray30,
2778              transparent = false,
2779              line_width  = 5,
2780              ellipse(0,6,3,2,270,-270),
2781              /* center (x,y), a, b, start & end in degrees */
2782              transparent = true,
2783              color       = blue,
2784              line_width  = 3,
2785              ellipse(2.5,6,2,3,30,-90),
2786              xrange      = [-3,6],
2787              yrange      = [2,9] )$
2788 @end example
2790 @opencatbox{Категории:}
2791 @category{Пакет draw}
2792 @closecatbox
2794 @end deffn
2797 @deffn  {Графический объект} label ([@var{string},@var{x},@var{y}],...)
2798 @deffnx {Графический объект} label ([@var{string},@var{x},@var{y},@var{z}],...)
2799 Изображает текстовую метку в двух или трех измерениях.
2801 Следующие @i{графические опции} влияют на этот объект: @code{label_alignment}, 
2802 @code{label_orientation} и @code{color}.
2804 @b{Два измерения}
2806 @code{label([@var{string},@var{x},@var{y}])} изображает текст @var{string} в точке
2807 @code{[@var{x},@var{y}]}.
2809 Пример:
2811 @example
2812 (%i1) load("draw")$
2813 (%i2) draw2d(yrange = [0.1,1.4],
2814              color = "red",
2815              label(["Label in red",0,0.3]),
2816              color = "#0000ff",
2817              label(["Label in blue",0,0.6]),
2818              color = "light-blue",
2819              label(["Label in light-blue",0,0.9],
2820                    ["Another ligght-blue",0,1.2])  )$
2821 @end example
2823 @b{Три измерения}
2825 @code{label([@var{string},@var{x},@var{y},@var{z}])} изображает текст @var{string} в точке
2826 @code{[@var{x},@var{y},@var{z}]}.
2828 Пример:
2830 @example
2831 (%i1) load("draw")$
2832 (%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3),
2833              color = red,
2834              label(["UP 1",-2,0,3], ["UP 2",1.5,0,4]),
2835              color = blue,
2836              label(["DOWN 1",2,0,-3]) )$
2837 @end example
2839 @opencatbox{Категории:}
2840 @category{Пакет draw}
2841 @closecatbox
2843 @end deffn
2847 @deffn  {Графический объект} vector ([@var{x},@var{y}], [@var{dx},@var{dy}])
2848 @deffnx {Графический объект} vector ([@var{x},@var{y},@var{z}], [@var{dx},@var{dy},@var{dz}])
2849 Строит вектор в двух или трех измерениях.
2851 Следующие @i{графические опции} влияют на этот объект: @code{head_both}, 
2852 @code{head_length}, @code{head_angle}, @code{head_type}, @code{line_width}, 
2853 @code{line_type}, @code{key} и @code{color}.
2855 @b{Два измерения}
2857 @code{vector([@var{x},@var{y}], [@var{dx},@var{dy}])} строит вектор
2858 @code{[@var{dx},@var{dy}]} с началом в точке @code{[@var{x},@var{y}]}.
2860 Пример:
2862 @example
2863 (%i1) load("draw")$
2864 (%i2) draw2d(xrange      = [0,12],
2865              yrange      = [0,10],
2866              head_length = 1,
2867              vector([0,1],[5,5]), /* default type */
2868              head_type = 'empty,
2869              vector([3,1],[5,5]),
2870              head_both = true,
2871              head_type = 'nofilled,
2872              line_type = dots,
2873              vector([6,1],[5,5]))$
2874 @end example
2876 @b{Три измерения}
2878 @code{vector([@var{x},@var{y},@var{z}], [@var{dx},@var{dy},@var{dz}])} 
2879 строит вектор @code{[@var{dx},@var{dy},@var{dz}]} с
2880 началом в точке @code{[@var{x},@var{y},@var{z}]}.
2882 Пример:
2884 @example
2885 (%i1) load("draw")$
2886 (%i2) draw3d(color = cyan,
2887              vector([0,0,0],[1,1,1]/sqrt(3)),
2888              vector([0,0,0],[1,-1,0]/sqrt(2)),
2889              vector([0,0,0],[1,1,-2]/sqrt(6)) )$
2890 @end example
2892 @opencatbox{Категории:}
2893 @category{Пакет draw}
2894 @closecatbox
2896 @end deffn
2899 @deffn  {Графический объект} explicit (@var{fcn},@var{var},@var{minval},@var{maxval})
2900 @deffnx {Графический объект} explicit (@var{fcn},@var{var1},@var{minval1},@var{maxval1},@var{var2},@var{minval2},@var{maxval2})
2901 Строит явную функцию в двух или трех измерениях.
2903 @b{Два измерения}
2905 @code{explicit(@var{fcn},@var{var},@var{minval},@var{maxval})} строит явную функцию @var{fcn}
2906 переменной @var{var}, принимающей значения от @var{minval} до @var{maxval}.
2908 Следующие @i{графические опции} влияют на этот объект: @code{nticks}, 
2909 @code{adapt_depth}, @code{line_width}, @code{line_type}, @code{key}, 
2910 @code{filled_func}, @code{fill_color} и @code{color}.
2912 Пример:
2914 @example
2915 (%i1) load("draw")$
2916 (%i2) draw2d(line_width = 3,
2917              color      = blue,
2918              explicit(x^2,x,-3,3) )$
2919 (%i3) draw2d(fill_color  = brown,
2920              filled_func = true,
2921              explicit(x^2,x,-3,3) )$
2922 @end example
2924 @b{Три измерения}
2926 @code{explicit(@var{fcn},@var{var1},@var{minval1},@var{maxval1},@var{var2},@var{minval2},@var{maxval2})}
2927 строит явную функцию @var{fcn} переменной @var{var1} в пределах
2928 от @var{minval1} до @var{maxval1}, и переменной @var{var2} в пределах
2929 от @var{minval2} до @var{maxval2}.
2931 Следующие @i{графические опции} влияют на этот объект: @code{xu_grid}, 
2932 @code{yv_grid}, @code{line_type}, @code{key} и @code{color}.
2934 Пример:
2936 @example
2937 (%i1) load("draw")$
2938 (%i2) draw3d(key   = "Gauss",
2939              color = "#a02c00",
2940              explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3),
2941              yv_grid     = 10,
2942              color = blue,
2943              key   = "Plane",
2944              explicit(x+y,x,-5,5,y,-5,5),
2945              surface_hide = true)$
2946 @end example
2948 См. @code{filled_func} по поводу функций с заполнением.
2950 @opencatbox{Категории:}
2951 @category{Пакет draw}
2952 @closecatbox
2954 @end deffn
2956 @deffn  {Графический объект} implicit (@var{fcn},@var{x},@var{xmin},@var{xmax},@var{y},@var{ymin},@var{ymax})
2957 @deffnx {Графический объект} implicit (@var{fcn},@var{x},@var{xmin},@var{xmax},@var{y},@var{ymin},@var{ymax},@var{z},@var{zmin},@var{zmax})
2958 Строит неявную функцию в двух и трех измерениях.
2960 @b{Два измерения}
2962 @code{implicit(@var{fcn},@var{x},@var{xmin},@var{xmax},@var{y},@var{ymin},@var{ymax})}
2963 строит неявную функцию, определенную @var{fcn} с переменной @var{x}, принимающей значения
2964 от @var{xmin} до @var{xmax}, и переменной @var{y}, принимающей значения
2965 от @var{ymin} до @var{ymax}.
2967 Следующие @i{графические опции} влияют на этот объект: @code{ip_grid}, 
2968 @code{ip_grid_in}, @code{line_width}, @code{line_type}, @code{key} и @code{color}.
2970 Пример:
2972 @example
2973 (%i1) load("draw")$
2974 (%i2) draw2d(terminal  = eps,
2975              grid      = true,
2976              line_type = solid,
2977              key       = "y^2=x^3-2*x+1",
2978              implicit(y^2=x^3-2*x+1, x, -4,4, y, -4,4),
2979              line_type = dots,
2980              key       = "x^3+y^3 = 3*x*y^2-x-1",
2981              implicit(x^3+y^3 = 3*x*y^2-x-1, x,-4,4, y,-4,4),
2982              title     = "Two implicit functions" )$
2983 @end example
2986 @b{Три измерения}
2988 @code{implicit (@var{fcn},@var{x},@var{xmin},@var{xmax}, @var{y},@var{ymin},@var{ymax}, @var{z},@var{zmin},@var{zmax})}
2989 строит неявную поверхность, определенную @var{fcn}, с переменной @var{x}, принимающей значения
2990 от @var{xmin} до @var{xmax}, переменной @var{y}, принимающей значения
2991 от @var{ymin} до @var{ymax} и переменной @var{z}, принимающей значения
2992 от @var{zmin} до @var{zmax}. Для построения используется @i{алгоритм марширующих кубов}.
2994 Следующие @i{графические опции} влияют на этот объект: @code{x_voxel}, 
2995 @code{y_voxel}, @code{z_voxel}, @code{line_width}, @code{line_type}, @code{key} и @code{color}.
2997 Пример:
2999 @example
3000 (%i1) load("draw")$
3001 (%i2) draw3d(
3002         color=blue,
3003         implicit((x^2+y^2+z^2-1)*(x^2+(y-1.5)^2+z^2-0.5)=0.015,
3004                  x,-1,1,y,-1.2,2.3,z,-1,1),
3005         surface_hide=true);
3006 @end example
3008 @opencatbox{Категории:}
3009 @category{Пакет draw}
3010 @closecatbox
3012 @end deffn
3015 @deffn  {Графический объект} polar (@var{radius},@var{ang},@var{minang},@var{maxang})
3016 Строит двумерную функцию в полярных координатах.
3018 @b{Два измерения}
3020 @code{polar (@var{radius},@var{ang},@var{minang},@var{maxang})} изображает функцию 
3021 @code{@var{radius}(@var{ang})} в полярных координатах переменной  
3022 @var{ang} в пределах от @var{minang} до @var{maxang}.
3024 Следующие @i{графические опции} влияют на этот объект: @code{nticks}, 
3025 @code{line_width}, @code{line_type}, @code{key} и @code{color}.
3027 Пример:
3029 @example
3030 (%i1) load("draw")$
3031 (%i2) draw2d(user_preamble = "set grid polar",
3032              nticks        = 200,
3033              xrange        = [-5,5],
3034              yrange        = [-5,5],
3035              color         = blue,
3036              line_width    = 3,
3037              title         = "Hyperbolic Spiral",
3038              polar(10/theta,theta,1,10*%pi) )$
3039 @end example
3041 @opencatbox{Категории:}
3042 @category{Пакет draw}
3043 @closecatbox
3045 @end deffn
3048 @deffn  {Графический объект} spherical (@var{radius},@var{azi},@var{minazi},@var{maxazi},@var{zen},@var{minzen},@var{maxzen})
3049 Строит трехмерную функцию в сферических координатах.
3051 @b{Три измерения}
3053 @code{spherical (@var{radius},@var{azi},@var{minazi},@var{maxazi},@var{zen},@var{minzen},@var{maxzen})}
3054 строит функцию @code{@var{radius}(@var{azi},@var{zen})} в сферических координатах с @i{азимутом}
3055 @var{azi} в пределах от @var{minazi} до @var{maxazi} и @i{возвышением} @var{zen} в пределах от
3056 @var{minzen} до @var{maxzen}.
3058 Следующие @i{графические опции} влияют на этот объект: @code{xu_grid}, 
3059 @code{yv_grid}, @code{line_type}, @code{key} и @code{color}.
3061 Пример:
3063 @example
3064 (%i1) load("draw")$
3065 (%i2) draw3d(spherical(1,a,0,2*%pi,z,0,%pi))$
3066 @end example
3068 @opencatbox{Категории:}
3069 @category{Пакет draw}
3070 @closecatbox
3072 @end deffn
3075 @deffn  {Графический объект} cylindrical (@var{radius},@var{z},@var{minz},@var{maxz},@var{azi},@var{minazi},@var{maxazi})
3076 Строит трехмерную функцию в цилиндрических координатах.
3078 @b{Три измерения}
3080 @code{cylindrical (@var{radius},@var{z},@var{minz},@var{maxz},@var{azi},@var{minazi},@var{maxazi})}
3081 строит функцию @code{@var{radius}(@var{z},@var{azi})} в цилиндрических координатах с
3082 @var{z} в пределах от @var{minz} до @var{maxz} и @i{азимутом} @var{azi} в пределах от
3083 @var{minazi} до @var{maxazi}.
3085 Следующие @i{графические опции} влияют на этот объект: @code{xu_grid}, 
3086 @code{yv_grid}, @code{line_type}, @code{key} и @code{color}.
3088 Пример:
3090 @example
3091 (%i1) load("draw")$
3092 (%i2) draw3d(cylindrical(1,z,-2,2,az,0,2*%pi))$
3093 @end example
3095 @opencatbox{Категории:}
3096 @category{Пакет draw}
3097 @closecatbox
3099 @end deffn
3102 @deffn  {Графический объект} parametric (@var{xfun},@var{yfun},@var{par},@var{parmin},@var{parmax})
3103 @deffnx {Графический объект} parametric (@var{xfun},@var{yfun},@var{zfun},@var{par},@var{parmin},@var{parmax})
3104 Строит параметрическую функцию в двух и трех переменных.
3106 Следующие @i{графические опции} влияют на этот объект: @code{nticks}, 
3107 @code{line_width}, @code{line_type}, @code{key} и @code{color}.
3109 @b{Два измерения}
3111 @code{parametric (@var{xfun},@var{yfun},@var{par},@var{parmin},@var{parmax})} строит параметрическую функцию 
3112 @code{[@var{xfun},@var{yfun}]} с параметром @var{par}, принимающим значения от  
3113 @var{parmin} до @var{parmax}.
3115 Пример:
3117 @example
3118 (%i1) load("draw")$
3119 (%i2) draw2d(explicit(exp(x),x,-1,3),
3120              color = red,
3121              key   = "This is the parametric one!!",
3122              parametric(2*cos(rrr),rrr^2,rrr,0,2*%pi))$
3123 @end example
3125 @b{Три измерения}
3127 @code{parametric (@var{xfun},@var{yfun},@var{zfun},@var{par},@var{parmin},@var{parmax})} строит параметрическую кривую
3128 @code{[@var{xfun},@var{yfun},@var{zfun}]} с параметром @var{par}, принимающем значения от 
3129 @var{parmin} до @var{parmax}.
3131 Пример:
3133 @example
3134 (%i1) load("draw")$
3135 (%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3),
3136              color = royalblue,
3137              parametric(cos(5*u)^2,sin(7*u),u-2,u,0,2),
3138              color      = turquoise,
3139              line_width = 2,
3140              parametric(t^2,sin(t),2+t,t,0,2),
3141              surface_hide = true,
3142              title = "Surface & curves" )$
3143 @end example
3145 @opencatbox{Категории:}
3146 @category{Пакет draw}
3147 @closecatbox
3149 @end deffn
3152 @deffn  {Графический объект} image (@var{im},@var{x0},@var{y0},@var{width},@var{height})
3153 Строит в двух измерениях.
3155 @b{Два измерения}
3157 @code{image (@var{im},@var{x0},@var{y0},@var{width},@var{height})} строит изображение @var{im} 
3158 в прямоугольной области от угла @code{(@var{x0},@var{y0})} до @code{(x0+@var{width},y0+@var{height})} 
3159 на вещественной плоскости. Параметр @var{im} должен быть матрицей вещественных чисел, или матрицей
3160 векторов длины 3, или объект типа @var{картина}.
3162 Если @var{im} -- матрица вещественных чисел или объект @var{картина уровней},
3163 то значения пикселов интерпретируются в соответствии с графической опцией @code{palette},
3164 которая является вектором длины 3 с компонентами, принимающими значение от -36 до +36.
3165 Каждое значение является индексом формулы, преобразующей значение уровня в красный,
3166 зеленый и синий цвета соответственно:
3167 @example
3168  0: 0               1: 0.5           2: 1
3169  3: x               4: x^2           5: x^3
3170  6: x^4             7: sqrt(x)       8: sqrt(sqrt(x))
3171  9: sin(90x)       10: cos(90x)     11: |x-0.5|
3172 12: (2x-1)^2       13: sin(180x)    14: |cos(180x)|
3173 15: sin(360x)      16: cos(360x)    17: |sin(360x)|
3174 18: |cos(360x)|    19: |sin(720x)|  20: |cos(720x)|
3175 21: 3x             22: 3x-1         23: 3x-2
3176 24: |3x-1|         25: |3x-2|       26: (3x-1)/2
3177 27: (3x-2)/2       28: |(3x-1)/2|   29: |(3x-2)/2|
3178 30: x/0.32-0.78125                  31: 2*x-0.84
3179 32: 4x;1;-2x+1.84;x/0.08-11.5
3180 33: |2*x - 0.5|    34: 2*x          35: 2*x - 0.5
3181 36: 2*x - 1
3182 @end example
3183 Отрицательные числа означают отрицательные цветовые компоненты.
3185 @code{palette = gray} и @code{palette = color} являются сокращениями 
3186 для @code{palette = [3,3,3]} и @code{palette = [7,5,15]} соответственно.
3188 Если @var{im} -- матрица векторов длины 3 или объект @var{rgb-картина},
3189 то они интерпретируются как красный, зеленый и синий цвета.
3191 Примеры:
3193 Если @var{im} -- матрица вещественных чисел или объект @var{картина уровней},
3194 то значения пикселов интерпретируются в соответствии с графической опцией @code{palette}.
3195 @example
3196 (%i1) load("draw")$
3197 (%i2) im: apply(
3198            'matrix,
3199             makelist(makelist(random(200),i,1,30),i,1,30))$
3200 (%i3) /* palette = color, default */
3201       draw2d(image(im,0,0,30,30))$
3202 (%i4) draw2d(palette = gray, image(im,0,0,30,30))$
3203 (%i5) draw2d(palette = [15,20,-4],
3204              colorbox=false,
3205              image(im,0,0,30,30))$
3206 @end example
3208 См. @code{colorbox}.
3210 Если @var{im} -- матрица векторов длины 3 или объект @var{rgb-картина},
3211 то они интерпретируются как красный, зеленый и синий цвета.
3212 @example
3213 (%i1) load("draw")$
3214 (%i2) im: apply(
3215             'matrix,
3216              makelist(
3217                makelist([random(300),
3218                          random(300),
3219                          random(300)],i,1,30),i,1,30))$
3220 (%i3) draw2d(image(im,0,0,30,30))$
3221 @end example
3223 Пакет @code{draw} автоматически загружает пакет @code{picture}. 
3224 В данном примере,  объект типа @var{картина уровней} строится вручную
3225 и потом изображается.
3226 @example
3227 (%i1) load("draw")$
3228 (%i2) im: make_level_picture([45,87,2,134,204,16],3,2);
3229 (%o2)       picture(level, 3, 2, @{Array:  #(45 87 2 134 204 16)@})
3230 (%i3) /* default color palette */
3231       draw2d(image(im,0,0,30,30))$
3232 (%i4) /* gray palette */
3233       draw2d(palette = gray,
3234              image(im,0,0,30,30))$
3235 @end example
3237 Файл xpm читается и изображается.
3238 @example
3239 (%i1) load("draw")$
3240 (%i2) im: read_xpm("myfile.xpm")$
3241 (%i3) draw2d(image(im,0,0,10,7))$
3242 @end example
3244 См. @code{make_level_picture}, @code{make_rgb_picture} и @code{read_xpm}.
3246 По ссылке URL @url{http://www.telefonica.net/web2/biomates/maxima/gpdraw/image}
3247 находятся более развернутые примеры.
3249 @opencatbox{Категории:}
3250 @category{Пакет draw}
3251 @closecatbox
3253 @end deffn
3256 @defvr {Глобальная переменная} boundaries_array
3257 Значение по умолчанию: @code{false}
3259 @code{boundaries_array} -- это массив, в котором графический объект @code{geomap} 
3260 ищет координаты границ.
3262 Каждая компонента @code{boundaries_array} есть массив чисел с плавающей точкой --
3263 координат многоугольного сегмента или границы карты.
3265 См. @code{geomap}.
3267 @opencatbox{Категории:}
3268 @category{Пакет draw}
3269 @closecatbox
3271 @end defvr
3274 @deffn  {Графический объект} geomap (@var{numlist})
3275 @deffnx {Графический объект} geomap (@var{numlist},@var{3Dprojection})
3276 Строит карты в двух и трех измерениях.
3278 @b{Два измерения}
3280 Эта функция работает вместе с глобальной переменной @code{boundaries_array}.
3282 Аргумент @var{numlist} -- список, содержащий числа или списки чисел.
3283 Все числа должны быть неотрицательными  целыми,
3284 которые представляют компоненты глобального массива @code{boundaries_array}.
3286 Каждая компонента @code{boundaries_array} есть массив чисел с плавающей точкой --
3287 координат многоугольного сегмента или границы карты.
3289 Функция @code{geomap (@var{numlist})} проецирует свои аргументы на плоскость и
3290 строит соответствующую границу из @code{boundaries_array}.
3292 Следующие @i{графические опции} влияют на этот объект: @code{line_width}, 
3293 @code{line_type} и @code{color}.
3295 Примеры:
3297 Простая карта, определенная вручную:
3298 @example
3299 (%i1) load("draw")$
3300 (%i2) /* Vertices of boundary #0: @{(1,1),(2,5),(4,3)@} */
3301    ( bnd0: make_array(flonum,6),
3302      bnd0[0]:1.0, bnd0[1]:1.0, bnd0[2]:2.0,
3303      bnd0[3]:5.0, bnd0[4]:4.0, bnd0[5]:3.0 )$
3304 (%i3) /* Vertices of boundary #1: @{(4,3),(5,4),(6,4),(5,1)@} */
3305    ( bnd1: make_array(flonum,8),
3306      bnd1[0]:4.0, bnd1[1]:3.0, bnd1[2]:5.0, bnd1[3]:4.0,
3307      bnd1[4]:6.0, bnd1[5]:4.0, bnd1[6]:5.0, bnd1[7]:1.0)$
3308 (%i4) /* Vertices of boundary #2: @{(5,1), (3,0), (1,1)@} */
3309    ( bnd2: make_array(flonum,6),
3310      bnd2[0]:5.0, bnd2[1]:1.0, bnd2[2]:3.0,
3311      bnd2[3]:0.0, bnd2[4]:1.0, bnd2[5]:1.0 )$
3312 (%i5) /* Vertices of boundary #3: @{(1,1), (4,3)@} */
3313    ( bnd3: make_array(flonum,4),
3314      bnd3[0]:1.0, bnd3[1]:1.0, bnd3[2]:4.0, bnd3[3]:3.0)$
3315 (%i6) /* Vertices of boundary #4: @{(4,3), (5,1)@} */
3316    ( bnd4: make_array(flonum,4),
3317      bnd4[0]:4.0, bnd4[1]:3.0, bnd4[2]:5.0, bnd4[3]:1.0)$
3318 (%i7) /* Pack all together in boundaries_array */
3319    ( boundaries_array: make_array(any,5),
3320      boundaries_array[0]: bnd0, boundaries_array[1]: bnd1,
3321      boundaries_array[2]: bnd2, boundaries_array[3]: bnd3,
3322      boundaries_array[4]: bnd4 )$
3323 (%i8) draw2d(geomap([0,1,2,3,4]))$
3324 @end example
3326 Вспомогательный пакет @code{worldmap} заносит в 
3327 @code{boundaries_array} реальные границы (долгота, широта). 
3328 Эти данные публично доступны и получены из 
3329 @url{http://www-cger.nies.go.jp/grid-e/gridtxt/grid19.html}.
3330 Пакет @code{worldmap} также определяет границы стран,
3331 континентов и береговых линий в форме списков с необходимыми 
3332 компонентами @code{boundaries_array} (см. файл @code{share/draw/worldmap.mac}
3333 для дальнейшей информации). 
3334 Пакет @code{draw} не загружает автоматически пакет @code{worldmap}.
3335 @example
3336 (%i1) load("draw")$
3337 (%i2) load("worldmap")$
3338 (%i3) c1: gr2d(geomap(Canada,United_States,
3339                       Mexico,Cuba))$
3340 (%i4) c2: gr2d(geomap(Africa))$
3341 (%i5) c3: gr2d(geomap(Oceania,China,Japan))$
3342 (%i6) c4: gr2d(geomap(France,Portugal,Spain,
3343                       Morocco,Western_Sahara))$
3344 (%i7) draw(columns  = 2,
3345            c1,c2,c3,c4)$
3346 @end example
3348 Пакет @code{worldmap} также полезен для изображения
3349 стран в виде многоугольников. В этом случае графический объект
3350 @code{geomap} не нужен и вместо его используется объект @code{polygon}. 
3351 Т.к. в этом случае используются списки а не массивы, то изображение 
3352 карт будет мудреннее. См. @code{make_poly_country}
3353 и @code{make_poly_continent}, чтобы понять следующий код.
3354 @example
3355 (%i1) load("draw")$
3356 (%i2) load("worldmap")$
3357 (%i3) mymap: append(
3358    [color      = white],  /* borders are white */
3359    [fill_color = red],             make_poly_country(Bolivia),
3360    [fill_color = cyan],            make_poly_country(Paraguay),
3361    [fill_color = green],           make_poly_country(Colombia),
3362    [fill_color = blue],            make_poly_country(Chile),
3363    [fill_color = "#23ab0f"],       make_poly_country(Brazil),
3364    [fill_color = goldenrod],       make_poly_country(Argentina),
3365    [fill_color = "midnight-blue"], make_poly_country(Uruguay))$
3366 (%i4) apply(draw2d, mymap)$
3367 @end example
3370 @b{Три измерения}
3372 @code{geomap (@var{numlist})} проецирует границы карты на сферу единичного радиуса с центром (0,0,0). 
3373 Сферу и тип проекции можно изменить при помощи @code{geomap (@var{numlist},@var{3Dprojection})}.
3375 Доступны следующие трехмерные проекции:
3377 @itemize @bullet
3378 @item
3379 @code{[spherical_projection,@var{x},@var{y},@var{z},@var{r}]}: проецирует границы карты на сферу
3380 радиуса @var{r} с центром в (@var{x},@var{y},@var{z}).
3381 @example
3382 (%i1) load("draw")$
3383 (%i2) load("worldmap")$
3384 (%i3) draw3d(geomap(Australia), /* default projection */
3385              geomap(Australia,
3386                     [spherical_projection,2,2,2,3]))$
3387 @end example
3389 @item
3390 @code{[cylindrical_projection,@var{x},@var{y},@var{z},@var{r},@var{rc}]}: ре-проецирует сферические границы карты
3391 на цилиндр радиуса @var{rc} и осью, проходящей через полюса глобуса радиуса @var{r} с центром в 
3392 (@var{x},@var{y},@var{z}).
3393 @example
3394 (%i1) load("draw")$
3395 (%i2) load("worldmap")$
3396 (%i3) draw3d(geomap([America_coastlines,Eurasia_coastlines],
3397                     [cylindrical_projection,2,2,2,3,4]))$
3398 @end example
3400 @item
3401 @code{[conic_projection,@var{x},@var{y},@var{z},@var{r},@var{alpha}]}: ре-проецирует сферические границы карты
3402 на конус с углом @var{alpha} с осью, 
3403 проходящей через полюса глобуса радиуса @var{r} с центром в 
3404 (@var{x},@var{y},@var{z}). Оба северный и южный конусы касательны к сфере.
3405 @example
3406 (%i1) load("draw")$
3407 (%i2) load("worldmap")$
3408 (%i3) draw3d(geomap(World_coastlines,
3409                     [conic_projection,0,0,0,1,90]))$
3410 @end example
3411 @end itemize
3413 См. @url{http://www.telefonica.net/web2/biomates/maxima/gpdraw/geomap}
3414 для более сложных примеров.
3416 @opencatbox{Категории:}
3417 @category{Пакет draw}
3418 @closecatbox
3420 @end deffn
3429 @deffn  {Графический объект} parametric_surface (@var{xfun},@var{yfun},@var{zfun},@var{par1},@var{par1min},@var{par1max},@var{par2},@var{par2min},@var{par2max})
3430 Строит параметрическую поверхность в трех измерениях.
3432 @b{Три измерения}
3434 @code{parametric_surface (@var{xfun},@var{yfun},@var{zfun},@var{par1},@var{par1min},@var{par1max},@var{par2},@var{par2min},@var{par2max})}
3435 строит параметрическую поверхность @code{[@var{xfun},@var{yfun},@var{zfun}]}, с параметром @var{par1},
3436 принимающем значения от @var{par1min} до @var{par1max} и параметром @var{par2},
3437 принимающем значения от @var{par2min} до @var{par2max}.
3439 Следующие @i{графические опции} влияют на этот объект: @code{xu_grid}, 
3440 @code{yv_grid}, @code{line_type}, @code{key} и @code{color}.
3442 Пример:
3444 @example
3445 (%i1) load("draw")$
3446 (%i2) draw3d(title          = "Sea shell",
3447              xu_grid        = 100,
3448              yv_grid        = 25,
3449              rot_vertical   = 100,
3450              rot_horizontal = 20,
3451              surface_hide   = true,
3452              parametric_surface(0.5*u*cos(u)*(cos(v)+1),
3453                            0.5*u*sin(u)*(cos(v)+1),
3454                            u*sin(v) - ((u+3)/8*%pi)^2 - 20,
3455                            u, 0, 13*%pi, v, -%pi, %pi) )$
3456 @end example
3458 @opencatbox{Категории:}
3459 @category{Пакет draw}
3460 @closecatbox
3462 @end deffn
3473 @deffn {Функция} draw (@var{gr2d}, ..., @var{gr3d}, ..., @var{options}, ...)
3475 Изображает серию графических сцен.  Ее аргументы есть @code{gr2d} и/или @code{gr3d} 
3476 графические объекты вместе с некоторыми опциями. По умолчанию сцены собираются вместе в одну колонку.
3478 Функция @code{draw} принимает следующие глобальные опции: @code{terminal},
3479 @code{columns}, @code{pic_width}, @code{pic_height}, @code{eps_width},
3480 @code{eps_height}, @code{file_name} и @code{delay}.
3482 Функции @code{draw2d} и @code{draw3d} -- сокращения, которые используются,
3483 когда требуется изобразить только одну сцену в двух или трех измерениях соответственно.
3485 Для того, чтобы использовать эту функцию, ее следует загрузить командой @code{load("draw")}.
3487 Пример:
3489 @example
3490 (%i1) load("draw")$
3491 (%i2) scene1: gr2d(title="Ellipse",
3492                    nticks=30,
3493                    parametric(2*cos(t),5*sin(t),t,0,2*%pi))$
3494 (%i3) scene2: gr2d(title="Triangle",
3495                    polygon([4,5,7],[6,4,2]))$
3496 (%i4) draw(scene1, scene2, columns = 2)$
3497 @end example
3499 Эти две команды эквивалентны:
3500 @example
3501 (%i1) load("draw")$
3502 (%i2) draw(gr3d(explicit(x^2+y^2,x,-1,1,y,-1,1)));
3503 (%o2)                          [gr3d(explicit)]
3504 (%i3) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1));
3505 (%o3)                          [gr3d(explicit)]
3506 @end example
3508 Анимированный файл gif:
3509 @example
3510 (%i1) load("draw")$
3511 (%i2) draw(
3512         delay     = 100,
3513         file_name = "zzz",
3514         terminal  = 'animated_gif,
3515         gr2d(explicit(x^2,x,-1,1)),
3516         gr2d(explicit(x^3,x,-1,1)),
3517         gr2d(explicit(x^4,x,-1,1)));
3518 End of animation sequence
3519 (%o2)          [gr2d(explicit), gr2d(explicit), gr2d(explicit)]
3520 @end example
3522 См. @code{gr2d}, @code{gr3d}, @code{draw2d} и @code{draw3d}.
3524 @opencatbox{Категории:}
3525 @category{Пакет draw}
3526 @category{Вывод файлов}
3527 @closecatbox
3529 @end deffn
3531 @deffn {Функция} draw2d (@var{option}, @var{graphic_object}, ...)
3533 Эта функция является сокращением для 
3534 @code{draw(gr2d(@var{options}, ..., @var{graphic_object}, ...))}.
3536 Она может использоваться для изображения одиночной двумерной сцены.
3538 Для того, чтобы использовать эту функцию, ее следует загрузить командой @code{load("draw")}.
3540 См. также @code{draw} и @code{gr2d}.
3542 @opencatbox{Категории:}
3543 @category{Пакет draw}
3544 @category{Вывод файлов}
3545 @closecatbox
3547 @end deffn
3550 @deffn {Функция} draw3d (@var{option}, @var{graphic_object}, ...)
3552 Эта функция является сокращением для 
3553 @code{draw(gr3d(@var{options}, ..., @var{graphic_object}, ...))}.
3555 Она может использоваться для изображения одиночной трехмерной сцены.
3557 Для того, чтобы использовать эту функцию, ее следует загрузить командой @code{load("draw")}.
3559 См. также @code{draw} и @code{gr3d}.
3561 @opencatbox{Категории:}
3562 @category{Пакет draw}
3563 @category{Вывод файлов}
3564 @closecatbox
3566 @end deffn
3571 @node Функции и переменные для картин, Функции и переменные для карты мира, Функции и переменные пакета draw, Пакет draw
3572 @section Функции и переменные для картин
3576 @deffn  {Функция} make_level_picture (@var{data})
3577 @deffnx {Функция} make_level_picture (@var{data},@var{width},@var{height})
3578 Возвращает объект типа @var{картина} уровней. @code{make_level_picture (@var{data})}
3579 строит объект @var{картина} из матрицы @var{data}.
3580 @code{make_level_picture (@var{data},@var{width},@var{height})}
3581 строит объект из списка чисел; в этом случае должны быть заданы оба параметра 
3582 @var{width} и @var{height}.
3584 Возвращает объект типа @var{картина}, содержащий следующие четыре части:
3586 @enumerate
3587 @item символ @code{level}
3588 @item ширина картины
3589 @item высота картины
3590 @item массив целых чисел в пределах от 0 до 255, описывающих пикселы.
3591 Аргумент @var{data} должен содержать только числа в пределах от 0 до 255;
3592 отрицательные числа заменяются 0, а те, что превышают 255, заменяются на 255.
3593 @end enumerate
3595 Пример:
3597 Картина уровней из матрицы.
3598 @example
3599 (%i1) load("draw")$
3600 (%i2) make_level_picture(matrix([3,2,5],[7,-9,3000]));
3601 (%o2)         picture(level, 3, 2, @{Array:  #(3 2 5 7 0 255)@})
3602 @end example
3604 Картина уровней из числового списка.
3605 @example
3606 (%i1) load("draw")$
3607 (%i2) make_level_picture([-2,0,54,%pi],2,2);
3608 (%o2)            picture(level, 2, 2, @{Array:  #(0 0 54 3)@})
3609 @end example
3611 @opencatbox{Категории:}
3612 @category{Пакет draw}
3613 @closecatbox
3615 @end deffn
3618 @deffn  {Функция} picturep (@var{x})
3619 Возвращает @code{true}, если аргумент является правильно сформированной картиной,
3620 и @code{false} в противном случае.
3622 @opencatbox{Категории:}
3623 @category{Пакет draw}
3624 @category{Функции предикаты}
3625 @closecatbox
3627 @end deffn
3630 @deffn  {Функция} picture_equalp (@var{x},@var{y})
3631 Возвращает @code{true}, если картины совпадают, и @code{false} в противном случае.
3633 @opencatbox{Категории:}
3634 @category{Пакет draw}
3635 @category{Функции предикаты}
3636 @closecatbox
3638 @end deffn
3641 @deffn  {Функция} make_rgb_picture (@var{redlevel},@var{greenlevel},@var{bluelevel})
3642 Возвращает rgb-цветную @var{картину}. Все три аргумента должны быть картинами уровней,
3643 с уровнями, задающими красный, зеленый и синий цвета соответственно.
3645 Возвращаемый объект @var{картина} содержит следующие четыре части:
3647 @enumerate
3648 @item символ @code{rgb}
3649 @item ширина картины
3650 @item высота картины
3651 @item целый массив длины @var{3*width*height} с данными о пикселах со значениями 
3652 от 0 до 255. Каждый пиксел представляется тремя последовательными числами
3653 (красный, зелены, синий).
3654 @end enumerate
3656 Пример:
3658 @example
3659 (%i1) load("draw")$
3660 (%i2) red: make_level_picture(matrix([3,2],[7,260]));
3661 (%o2)           picture(level, 2, 2, @{Array:  #(3 2 7 255)@})
3662 (%i3) green: make_level_picture(matrix([54,23],[73,-9]));
3663 (%o3)           picture(level, 2, 2, @{Array:  #(54 23 73 0)@})
3664 (%i4) blue: make_level_picture(matrix([123,82],[45,32.5698]));
3665 (%o4)          picture(level, 2, 2, @{Array:  #(123 82 45 33)@})
3666 (%i5) make_rgb_picture(red,green,blue);
3667 (%o5) picture(rgb, 2, 2, 
3668               @{Array:  #(3 54 123 2 23 82 7 73 45 255 0 33)@})
3669 @end example
3671 @opencatbox{Категории:}
3672 @category{Пакет draw}
3673 @closecatbox
3675 @end deffn
3678 @deffn  {Функция} take_channel (@var{im},@var{color})
3679 Если параметр @var{color} равен @code{red}, @code{green} или @code{blue},
3680 то функция @code{take_channel} возвращает соответствующий цветовой канал картины @var{im}.
3681 Пример:
3683 @example
3684 (%i1) load("draw")$
3685 (%i2) red: make_level_picture(matrix([3,2],[7,260]));
3686 (%o2)           picture(level, 2, 2, @{Array:  #(3 2 7 255)@})
3687 (%i3) green: make_level_picture(matrix([54,23],[73,-9]));
3688 (%o3)           picture(level, 2, 2, @{Array:  #(54 23 73 0)@})
3689 (%i4) blue: make_level_picture(matrix([123,82],[45,32.5698]));
3690 (%o4)          picture(level, 2, 2, @{Array:  #(123 82 45 33)@})
3691 (%i5) make_rgb_picture(red,green,blue);
3692 (%o5) picture(rgb, 2, 2, 
3693               @{Array:  #(3 54 123 2 23 82 7 73 45 255 0 33)@})
3694 (%i6) take_channel(%,'green);  /* simple quote!!! */
3695 (%o6)           picture(level, 2, 2, @{Array:  #(54 23 73 0)@})
3696 @end example
3698 @opencatbox{Категории:}
3699 @category{Пакет draw}
3700 @closecatbox
3702 @end deffn
3705 @deffn  {Функция} negative_picture (@var{pic})
3706 Возвращает негатив картины (@var{уровней} или @var{rgb}).
3708 @opencatbox{Категории:}
3709 @category{Пакет draw}
3710 @closecatbox
3712 @end deffn
3715 @deffn  {Функция} rgb2level (@var{pic})
3716 Преобразует @var{rgb} картину в картину @var{уровней}
3717 усреднением красного, зеленого и синего каналов.
3719 @opencatbox{Категории:}
3720 @category{Пакет draw}
3721 @closecatbox
3723 @end deffn
3726 @deffn  {Функция} get_pixel (@var{pic},@var{x},@var{y})
3727 Возвращает пиксел из картины. Координаты @var{x} и @var{y} должны быть от 0 до
3728 @code{width-1} и @code{height-1} соответственно.
3730 @opencatbox{Категории:}
3731 @category{Пакет draw}
3732 @closecatbox
3734 @end deffn
3737 @deffn  {Функция} read_xpm (@var{xpm_file})
3738 Читает файл в формате xpm и возвращает объект типа картина.
3740 @opencatbox{Категории:}
3741 @category{Пакет draw}
3742 @closecatbox
3744 @end deffn
3753 @node Функции и переменные для карты мира,  , Функции и переменные для картин, Пакет draw
3754 @section Функции и переменные для карты мира
3757 @deffn  {Функция} region_boundaries (@var{x1},@var{y1},@var{x2},@var{y2})
3758 Определяет многоугольные сегменты из глобальной переменной @code{boundaries_array},
3759 содержащиеся внутри прямоугольника с вершинами (@var{x1},@var{y1}) (верхний левый) 
3760 и (@var{x2},@var{y2}) (нижний правый).
3762 Пример:
3764 Возвращает номера сегментов для северной Италии.
3765 @example
3766 (%i1) load("draw")$
3767 (%i2) load("worldmap")$
3768 (%i3) region_boundaries(10.4,41.5,20.7,35.4);
3769 (%o3)                [1846, 1863, 1864, 1881, 1888, 1894]
3770 (%i4) draw2d(geomap(%))$
3771 @end example
3773 @opencatbox{Категории:}
3774 @category{Пакет draw}
3775 @closecatbox
3777 @end deffn
3780 @deffn  {Функция} numbered_boundaries (@var{nlist})
3781 Строит многоугольные сегменты (границы), обозначаемые числами (координаты в @code{boundaries_array}). 
3782 Эта функция очень полезна при создании географических объектов.
3784 Пример:
3786 Карта Европы, с границами, обозначенными номерами компонент в 
3787 @code{boundaries_array}.
3788 @example
3789 (%i1) load("draw")$
3790 (%i2) load("worldmap")$
3791 (%i3) european_borders: 
3792            region_boundaries(-31.81,74.92,49.84,32.06)$
3793 (%i4) numbered_boundaries(european_borders)$
3794 @end example
3796 @opencatbox{Категории:}
3797 @category{Пакет draw}
3798 @closecatbox
3800 @end deffn
3803 @deffn  {Функция} make_polygon (@var{nlist})
3804 Возвращает объект @code{polygon}, построенный из индексов границ. Аргумент
3805 @var{nlist} -- список компонент в массиве @code{boundaries_array}.
3807 Пример:
3809 Бутан определяется номерами компонент 171, 173
3810 и 1143, так что @code{make_polygon([171,173,1143])}
3811 добавляет массив координат @code{boundaries_array[171]},
3812 @code{boundaries_array[173]} и @code{boundaries_array[1143]} и 
3813 возвращает объект @code{polygon}, пригодный для изображения функцией 
3814 @code{draw}. Для того чтобы избежать сообщений о ошибках, массивы должны быть
3815 совместимы в том смысле, что два последовательных массива имеют общие предельные
3816 координаты. В этом примере, две первые компоненты @code{boundaries_array[171]} равны
3817 двум последним компонентам @code{boundaries_array[173]}, и две первые компоненты  
3818 @code{boundaries_array[173]} равны двум первым компонентам  @code{boundaries_array[1143]}.
3819 В целом, числа 171, 173 и 1143 (именно в этом порядке) совместимы и цветной
3820 многоугольник может быть построен.
3821 @example
3822 (%i1) load("draw")$
3823 (%i2) load("worldmap")$
3824 (%i3) Bhutan;
3825 (%o3)                        [[171, 173, 1143]]
3826 (%i4) boundaries_array[171];
3827 (%o4) @{Array:  
3828        #(88.750549 27.14727 88.806351 27.25305 88.901367 27.282221
3829          88.917877 27.321039)@}
3830 (%i5) boundaries_array[173];
3831 (%o5) @{Array:
3832        #(91.659554 27.76511 91.6008 27.66666 91.598022 27.62499
3833          91.631348 27.536381 91.765533 27.45694 91.775253 27.4161 
3834          92.007751 27.471939 92.11441 27.28583 92.015259 27.168051
3835          92.015533 27.08083 92.083313 27.02277 92.112183 26.920271
3836          92.069977 26.86194 91.997192 26.85194 91.915253 26.893881
3837          91.916924 26.85416 91.8358 26.863331 91.712479 26.799999 
3838          91.542191 26.80444 91.492188 26.87472 91.418854 26.873329
3839          91.371353 26.800831 91.307457 26.778049 90.682457 26.77417
3840          90.392197 26.903601 90.344131 26.894159 90.143044 26.75333
3841          89.98996 26.73583 89.841919 26.70138 89.618301 26.72694 
3842          89.636093 26.771111 89.360786 26.859989 89.22081 26.81472
3843          89.110237 26.829161 88.921631 26.98777 88.873016 26.95499
3844          88.867737 27.080549 88.843307 27.108601 88.750549 
3845          27.14727)@}
3846 (%i6) boundaries_array[1143];
3847 (%o6) @{Array:  
3848        #(91.659554 27.76511 91.666924 27.88888 91.65831 27.94805 
3849          91.338028 28.05249 91.314972 28.096661 91.108856 27.971109
3850          91.015808 27.97777 90.896927 28.05055 90.382462 28.07972
3851          90.396088 28.23555 90.366074 28.257771 89.996353 28.32333
3852          89.83165 28.24888 89.58609 28.139999 89.35997 27.87166 
3853          89.225517 27.795 89.125793 27.56749 88.971077 27.47361
3854          88.917877 27.321039)@}
3855 (%i7) Bhutan_polygon: make_polygon([171,173,1143])$
3856 (%i8) draw2d(Bhutan_polygon)$
3857 @end example
3859 @opencatbox{Категории:}
3860 @category{Пакет draw}
3861 @closecatbox
3863 @end deffn
3866 @deffn  {Функция} make_poly_country (@var{country_name})
3867 Строит многоугольники, необходимые для изображения страны в цвете.
3868 Если есть острова, то страна определяется более чем одним многоугольником.
3870 Пример:
3872 @example
3873 (%i1) load("draw")$
3874 (%i2) load("worldmap")$
3875 (%i3) make_poly_country(India)$
3876 (%i4) apply(draw2d, %)$
3877 @end example
3879 @opencatbox{Категории:}
3880 @category{Пакет draw}
3881 @closecatbox
3883 @end deffn
3886 @deffn  {Функция} make_poly_continent (@var{continent_name})
3887 @deffnx  {Функция} make_poly_continent (@var{country_list})
3888 Строит многоугольники, необходимые для изображение континента или списка
3889 стран в цвете.
3891 Пример:
3893 @example
3894 (%i1) load("draw")$
3895 (%i2) load("worldmap")$
3896 (%i3) /* A continent */
3897       make_poly_continent(Africa)$
3898 (%i4) apply(draw2d, %)$
3899 (%i5) /* A list of countries */
3900       make_poly_continent([Germany,Denmark,Poland])$
3901 (%i6) apply(draw2d, %)$
3902 @end example
3904 @opencatbox{Категории:}
3905 @category{Пакет draw}
3906 @closecatbox
3908 @end deffn