4 @c OriginalRevision=1.25
5 @c TranslatedBy: (c) 2007-11 Vadim V. Zhytnikov <vvzhyt@gmail.com>
9 * Введение в пакет draw::
10 * Функции и переменные пакета draw::
11 * Функции и переменные для картин::
12 * Функции и переменные для карты мира::
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{Категории:}
37 @category{Пакеты библиотеки share}
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 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
63 (%i2) draw2d(xrange = [-3,5],
64 explicit(x^2,x,-1,1))$
67 См. @code{yrange} и @code{zrange}.
69 @opencatbox{Категории:}
77 @defvr {Графическая опция} yrange
78 Значение по умолчанию: @code{auto}
80 Если @code{yrange} равно @code{auto}, то диапазон координаты @var{y} вычисляется автоматически.
82 Если требуется определенный интервал @var{y}, он должен быть задан в форме списка,
83 например @code{yrange=[-2, 3]}.
85 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
92 (%i2) draw2d(yrange = [-2,3],
97 См. @code{xrange} и @code{zrange}.
99 @opencatbox{Категории:}
100 @category{Пакет draw}
107 @defvr {Графическая опция} zrange
108 Значение по умолчанию: @code{auto}
110 Если @code{zrange} равно @code{auto}, то диапазон координаты @var{z} вычисляется автоматически.
112 Если требуется определенный интервал @var{z}, он должен быть задан в форме списка,
113 например @code{zrange=[-2, 3]}.
115 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
122 (%i2) draw3d(yrange = [-3,3],
124 explicit(x^2+y^2,x,-1,1,y,-1,1),
128 См. @code{xrange} и @code{yrange}.
130 @opencatbox{Категории:}
131 @category{Пакет draw}
138 @defvr {Графическая опция} logx
139 Значение по умолчанию: @code{false}
141 Если @code{logx} равно @code{true}, то ось @var{x} будет изображаться в логарифмической шкале.
143 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
150 (%i2) draw2d(explicit(log(x),x,0.01,5),
154 См. @code{logy} и @code{logz}.
156 @opencatbox{Категории:}
157 @category{Пакет draw}
164 @defvr {Графическая опция} logy
165 Значение по умолчанию: @code{false}
167 Если @code{logy} равно @code{true}, то ось @var{y} будет изображаться в логарифмической шкале.
169 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
176 (%i2) draw2d(logy = true,
177 explicit(exp(x),x,0,5))$
180 См. @code{logx} и @code{logz}.
182 @opencatbox{Категории:}
183 @category{Пакет draw}
190 @defvr {Графическая опция} logz
191 Значение по умолчанию: @code{false}
193 Если @code{logz} равно @code{true}, то ось @var{z} будет изображаться в логарифмической шкале.
195 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
202 (%i2) draw3d(logz = true,
203 explicit(exp(u^2+v^2),u,-2,2,v,-2,2))$
206 См. @code{logx} и @code{logy}.
208 @opencatbox{Категории:}
209 @category{Пакет draw}
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}.
230 (%i2) /* screen terminal (default) */
231 draw2d(explicit(x^2,x,-1,1))$
233 draw2d(terminal = 'png,
235 explicit(x^2,x,-1,1))$
237 draw2d(terminal = 'jpg,
240 explicit(x^2,x,-1,1))$
242 draw2d(file_name = "myfile",
243 explicit(x^2,x,-1,1),
245 (%i6) /* wxwidgets window */
246 draw2d(explicit(x^2,x,-1,1),
250 Файл анимированного gif:
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)]
264 Опция @code{delay} возможна тоько для анимированного gif. В других случаях она игнорируется.
266 См. @code{file_name}, @code{pic_width}, @code{pic_height} и @code{delay}.
268 @opencatbox{Категории:}
269 @category{Пакет draw}
276 @defvr {Графическая опция} grid
277 Значение по умолчанию: @code{false}
279 Если @code{grid} равно @code{true}, то на плоскости @var{xy} будет изображена сетка.
281 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
288 (%i2) draw2d(grid = true,
289 explicit(exp(u),u,-2,2))$
292 @opencatbox{Категории:}
293 @category{Пакет draw}
300 @defvr {Графическая опция} title
301 Значение по умолчанию: @code{""} (пустая строка)
303 Опция @code{title} -- строка, содержащая основной заголовок сцены.
304 По умолчанию заголовок отсутствует.
306 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
313 (%i2) draw2d(explicit(exp(u),u,-2,2),
314 title = "Exponential function")$
317 @opencatbox{Категории:}
318 @category{Пакет draw}
325 @defvr {Графическая опция} xlabel
326 Значение по умолчанию: @code{""} (пустая строка)
328 Опция @code{xlabel} -- строка, содержащая метку для оси @var{x}.
329 По умолчанию метка отсутствует.
331 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
338 (%i2) draw2d(xlabel = "Time",
339 explicit(exp(u),u,-2,2),
340 ylabel = "Population")$
343 См. @code{ylabel} и @code{zlabel}.
345 @opencatbox{Категории:}
346 @category{Пакет draw}
353 @defvr {Графическая опция} ylabel
354 Значение по умолчанию: @code{""} (пустая строка)
356 Опция @code{ylabel} -- строка, содержащая метку для оси @var{y}.
357 По умолчанию метка отсутствует.
359 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
366 (%i2) draw2d(xlabel = "Time",
367 ylabel = "Population",
368 explicit(exp(u),u,-2,2) )$
371 См. @code{xlabel} и @code{zlabel}.
373 @opencatbox{Категории:}
374 @category{Пакет draw}
381 @defvr {Графическая опция} zlabel
382 Значение по умолчанию: @code{""} (пустая строка)
384 Опция @code{zlabel} -- строка, содержащая метку для оси @var{z}.
385 По умолчанию метка отсутствует.
387 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
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" )$
400 См. @code{xlabel} и @code{ylabel}.
402 @opencatbox{Категории:}
403 @category{Пакет draw}
409 @defvr {Графическая опция} xtics
410 Значение по умолчанию: @code{auto}
412 Управляет методом изображения делений на оси @var{x}.
416 Если @code{xtics} равно @var{auto}, то деления изображаются автоматически.
419 Если @code{xtics} равно @var{none}, то деления не изображаются.
422 Если @code{xtics} равно положительному числу, то это задает расстояние между соседними делениями.
425 Если @code{xtics} равно списку длины три вида @code{[start,incr,end]},
426 то деления изображаются от отметки @code{start} до @code{end} с интервалом @code{incr}.
429 Если @code{xtics} равно набору чисел @code{@{n1, n2, ...@}}, то деления изображаются
430 для значений @code{n1}, @code{n2}, ...
433 Если @code{xtics} равно набору пар чисел вида @code{@{["label1", n1], ["label2", n2], ...@}},
434 то деления со значением @code{n1}, @code{n2}, ...
435 обозначаются метками @code{"label1"}, @code{"label2"}, ... соответственно.
438 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
446 (%i2) draw2d(xtics = 'none,
447 explicit(x^3,x,-1,1) )$
450 Деления на каждой 1/4.
453 (%i2) draw2d(xtics = 1/4,
454 explicit(x^3,x,-1,1) )$
457 Деления на значениях от -3/4 до 3/4 с шагом 1/8.
460 (%i2) draw2d(xtics = [-3/4,1/8,3/4],
461 explicit(x^3,x,-1,1) )$
464 Деления в точках -1/2, -1/4 и 3/4.
467 (%i2) draw2d(xtics = @{-1/2,-1/4,3/4@},
468 explicit(x^3,x,-1,1) )$
474 (%i2) draw2d(xtics = @{["High",0.75],["Medium",0],["Low",-0.75]@},
475 explicit(x^3,x,-1,1) )$
478 См. @code{ytics} и @code{ztics}.
480 @opencatbox{Категории:}
481 @category{Пакет draw}
488 @defvr {Графическая опция} ytics
489 Значение по умолчанию: @code{auto}
491 Управляет методом изображения делений на оси @var{y}.
493 См. @code{xtics} для полного описания.
495 @opencatbox{Категории:}
496 @category{Пакет draw}
503 @defvr {Графическая опция} ztics
504 Значение по умолчанию: @code{auto}
506 Управляет методом изображения делений на оси @var{z}.
508 См. @code{xtics} для полного описания.
510 @opencatbox{Категории:}
511 @category{Пакет draw}
517 @defvr {Графическая опция} xtics_rotate
518 Значение по умолчанию: @code{false}
520 Если @code{xtics_rotate} равно @code{true}, то деления на оси @var{x} поворачиваются на 90 градусов.
522 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
524 @opencatbox{Категории:}
525 @category{Пакет draw}
531 @defvr {Графическая опция} ytics_rotate
532 Значение по умолчанию: @code{false}
534 Если @code{ytics_rotate} равно @code{true}, то деления на оси @var{y} поворачиваются на 90 градусов.
536 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
538 @opencatbox{Категории:}
539 @category{Пакет draw}
545 @defvr {Графическая опция} ztics_rotate
546 Значение по умолчанию: @code{false}
548 Если @code{ztics_rotate} равно @code{true}, то деления на оси @var{z} поворачиваются на 90 градусов.
550 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
552 @opencatbox{Категории:}
553 @category{Пакет draw}
559 @defvr {Графическая опция} xtics_axis
560 Значение по умолчанию: @code{false}
562 Если @code{xtics_axis} равно @code{true}, то деления и их метки изображаются вдоль оси @var{x},
563 если @code{false}, то деления изображаются на границе.
565 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
567 @opencatbox{Категории:}
568 @category{Пакет draw}
573 @defvr {Графическая опция} ytics_axis
574 Значение по умолчанию: @code{false}
576 Если @code{ytics_axis} равно @code{true}, то деления и их метки изображаются вдоль оси @var{y},
577 если @code{false}, то деления изображаются на границе.
579 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
581 @opencatbox{Категории:}
582 @category{Пакет draw}
587 @defvr {Графическая опция} ztics_axis
588 Значение по умолчанию: @code{false}
590 Если @code{ztics_axis} равно @code{true}, то деления и их метки изображаются вдоль оси @var{z},
591 если @code{false}, то деления изображаются на границе.
593 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
595 @opencatbox{Категории:}
596 @category{Пакет draw}
602 @defvr {Графическая опция} xaxis
603 Значение по умолчанию: @code{false}
605 Если @code{xaxis} равно @code{true}, то ось @var{x} изображается.
607 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
614 (%i2) draw2d(explicit(x^3,x,-1,1),
619 См. @code{xaxis_width}, @code{xaxis_type} и @code{xaxis_color}.
621 @opencatbox{Категории:}
622 @category{Пакет draw}
629 @defvr {Графическая опция} xaxis_width
630 Значение по умолчанию: 1
632 @code{xaxis_width} -- толщина оси @var{x}.
633 Значение должно быть положительным числом.
635 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
642 (%i2) draw2d(explicit(x^3,x,-1,1),
647 См. @code{xaxis}, @code{xaxis_type} и @code{xaxis_color}.
649 @opencatbox{Категории:}
650 @category{Пакет draw}
657 @defvr {Графическая опция} xaxis_type
658 Значение по умолчанию: @code{dots}
660 @code{xaxis_type} -- задает стиль изображения оси @var{x}.
661 Возможные значения: @code{solid} и @code{dots}.
663 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
670 (%i2) draw2d(explicit(x^3,x,-1,1),
675 См. @code{xaxis}, @code{xaxis_width} и @code{xaxis_color}.
677 @opencatbox{Категории:}
678 @category{Пакет draw}
685 @defvr {Графическая опция} xaxis_color
686 Значение по умолчанию: @code{"black"}
688 @code{xaxis_color} -- определяет цвет оси @var{x} axis.
689 См. @code{color} для способа задания цвета.
691 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
698 (%i2) draw2d(explicit(x^3,x,-1,1),
703 См. @code{xaxis}, @code{xaxis_width} и @code{xaxis_type}.
705 @opencatbox{Категории:}
706 @category{Пакет draw}
713 @defvr {Графическая опция} yaxis
714 Значение по умолчанию: @code{false}
716 Если @code{yaxis} равно @code{true}, то ось @var{y} изображается.
718 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
725 (%i2) draw2d(explicit(x^3,x,-1,1),
730 См. @code{yaxis_width}, @code{yaxis_type} и @code{yaxis_color}.
732 @opencatbox{Категории:}
733 @category{Пакет draw}
740 @defvr {Графическая опция} yaxis_width
741 Значение по умолчанию: 1
743 @code{yaxis_width} -- толщина оси @var{y}.
744 Значение должно быть положительным числом.
746 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
753 (%i2) draw2d(explicit(x^3,x,-1,1),
758 См. @code{yaxis}, @code{yaxis_type} и @code{yaxis_color}.
760 @opencatbox{Категории:}
761 @category{Пакет draw}
768 @defvr {Графическая опция} yaxis_type
769 Значение по умолчанию: @code{dots}
771 @code{yaxis_type} -- задает стиль изображения @var{y}.
772 Возможные значения: @code{solid} и @code{dots}.
774 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
781 (%i2) draw2d(explicit(x^3,x,-1,1),
786 См. @code{yaxis}, @code{yaxis_width} и @code{yaxis_color}.
788 @opencatbox{Категории:}
789 @category{Пакет draw}
796 @defvr {Графическая опция} yaxis_color
797 Значение по умолчанию: @code{"black"}
799 @code{yaxis_color} -- определяет цвет оси @var{y} axis.
800 См. @code{color} для способа задания цвета.
802 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
809 (%i2) draw2d(explicit(x^3,x,-1,1),
814 См. @code{yaxis}, @code{yaxis_width} и @code{yaxis_type}.
816 @opencatbox{Категории:}
817 @category{Пакет draw}
824 @defvr {Графическая опция} zaxis
825 Значение по умолчанию: @code{false}
827 Если @code{zaxis} равно @code{true}, то ось @var{x} изображается на трехмерных графиках.
828 Эта опция не влияет на двумерные графики.
830 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
837 (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
843 См. @code{zaxis_width}, @code{zaxis_type} и @code{zaxis_color}.
845 @opencatbox{Категории:}
846 @category{Пакет draw}
853 @defvr {Графическая опция} zaxis_width
854 Значение по умолчанию: 1
856 @code{zaxis_width} -- толщина оси @var{z}.
857 Значение должно быть положительным числом.
858 Эта опция не влияет на двумерные графики.
860 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
867 (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
873 См. @code{zaxis}, @code{zaxis_type} и @code{zaxis_color}.
875 @opencatbox{Категории:}
876 @category{Пакет draw}
883 @defvr {Графическая опция} zaxis_type
884 Значение по умолчанию: @code{dots}
886 @code{zaxis_type} -- задает стиль изображения оси @var{z}.
887 Возможные значения: @code{solid} и @code{dots}.
888 Эта опция не влияет на двумерные графики.
890 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
897 (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
902 См. @code{zaxis}, @code{zaxis_width} и @code{zaxis_color}.
904 @opencatbox{Категории:}
905 @category{Пакет draw}
912 @defvr {Графическая опция} zaxis_color
913 Значение по умолчанию: @code{"black"}
915 @code{zaxis_color} -- определяет цвет оси @var{z} axis.
916 См. @code{color} для способа задания цвета.
917 Эта опция не влияет на двумерные графики.
919 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
926 (%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
932 См. @code{zaxis}, @code{zaxis_width} и @code{zaxis_type}.
934 @opencatbox{Категории:}
935 @category{Пакет draw}
942 @defvr {Графическая опция} rot_vertical
943 Значение по умолчанию: 60
945 @code{rot_vertical} -- угол поворота (в градусах) вокруг оси @var{x}
946 точки наблюдения в трехмерных сценах.
948 Угол может быть в интервале @math{[0, 180]}.
950 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
957 (%i2) draw3d(rot_vertical = 170,
958 explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
961 См. @code{rot_horizontal}.
963 @opencatbox{Категории:}
964 @category{Пакет draw}
971 @defvr {Графическая опция} rot_horizontal
972 Значение по умолчанию: 30
974 @code{rot_horizontal} -- угол поворота (в градусах) вокруг оси @var{z}
975 точки наблюдения в трехмерных сценах.
977 Угол может быть в интервале @math{[0, 360]}.
979 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
986 (%i2) draw3d(rot_vertical = 170,
987 rot_horizontal = 360,
988 explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
991 См. @code{rot_vertical}.
993 @opencatbox{Категории:}
994 @category{Пакет draw}
1001 @defvr {Графическая опция} xy_file
1002 Значение по умолчанию: @code{""} (пустая строка)
1004 @code{xy_file} -- имя файла, в котором будут сохранены координаты после щелчка мышкой и нажатия
1005 клавиши 'x'. По умолчанию координаты не сохраняются.
1007 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1009 @opencatbox{Категории:}
1010 @category{Пакет draw}
1017 @defvr {Графическая опция} user_preamble
1018 Значение по умолчанию: @code{""} (пустая строка)
1020 Опытные пользователи Gnuplot могут использовать эту опцию для тонкой
1021 настройке поведения Gnuplot путем задания установок до
1022 комманд @code{plot} или @code{splot}.
1024 Значение этой опции должно быть строкой или списком строк (по одной на строку).
1026 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1031 Терминал @i{dumb} не поддерживается пакетом @code{draw},
1032 но можно задать его при помощи опции @code{user_preamble},
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")$
1040 @opencatbox{Категории:}
1041 @category{Пакет draw}
1048 @defvr {Графическая опция} file_name
1049 Значение по умолчанию: @code{"maxima_out"}
1051 Это имя файла, в котром терминалы @code{png}, @code{jpg}, @code{eps}
1052 и @code{eps_color} сохраняют графику.
1054 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1055 Она также может использоваться как аргумент функции @code{draw}.
1061 (%i2) draw2d(file_name = "myfile",
1062 explicit(x^2,x,-1,1),
1066 См. @code{terminal}, @code{pic_width} и @code{pic_height}.
1068 @opencatbox{Категории:}
1069 @category{Пакет draw}
1074 @defvr {Графическая опция} delay
1075 Значение по умолчанию: 5
1077 Это задержка в 1/100 секунды между кадрами анимированного gif.
1079 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1080 Она также может использоваться как аргумент функции @code{draw}.
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)]
1097 Опция @code{delay} применима только для анимированного gif.
1098 Для других случаев она игнорируется.
1100 См. @code{terminal}, @code{pic_width} и @code{pic_height}.
1102 @opencatbox{Категории:}
1103 @category{Пакет draw}
1108 @defvr {Графическая опция} pic_width
1109 Значение по умолчанию: 640
1111 Это ширина изображения, создаваемого терминалами @code{png} и @code{jpg}.
1113 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1114 Она также может использоваться как аргумент функции @code{draw}.
1120 (%i2) draw2d(terminal = 'png,
1123 explicit(x^2,x,-1,1))$
1126 См. @code{terminal}, @code{file_name} и @code{pic_height}.
1128 @opencatbox{Категории:}
1129 @category{Пакет draw}
1136 @defvr {Графическая опция} pic_height
1137 Значение по умолчанию: 640
1139 Это высота изображения, создаваемого терминалами @code{png} и @code{jpg}.
1141 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1142 Она также может использоваться как аргумент функции @code{draw}.
1148 (%i2) draw2d(terminal = 'png,
1151 explicit(x^2,x,-1,1))$
1154 См. @code{terminal}, @code{file_name} и @code{pic_width}.
1156 @opencatbox{Категории:}
1157 @category{Пакет draw}
1164 @defvr {Графическая опция} eps_width
1165 Значение по умолчанию: 12
1167 Это ширина изображения Postscript (в сантиметрах),
1168 создаваемого терминалами @code{eps} и @code{eps_color}.
1170 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1171 Она также может использоваться как аргумент функции @code{draw}.
1177 (%i2) draw2d(terminal = 'eps,
1180 explicit(x^2,x,-1,1))$
1183 См. @code{terminal}, @code{file_name} и @code{eps_height}.
1185 @opencatbox{Категории:}
1186 @category{Пакет draw}
1193 @defvr {Графическая опция} eps_height
1194 Значение по умолчанию: 8
1196 Это высота изображения Postscript (в сантиметрах),
1197 создаваемого терминалами @code{eps} и @code{eps_color}.
1199 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1200 Она также может использоваться как аргумент функции @code{draw}.
1206 (%i2) draw2d(terminal = 'eps,
1209 explicit(x^2,x,-1,1))$
1212 См. @code{terminal}, @code{file_name} и @code{eps_width}.
1214 @opencatbox{Категории:}
1215 @category{Пакет draw}
1222 @defvr {Графическая опция} axis_bottom
1223 Значение по умолчанию: @code{true}
1225 Если @code{axis_bottom} равно @code{true}, то на двумерных сценах изображается
1228 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1235 (%i2) draw2d(axis_bottom = false,
1236 explicit(x^3,x,-1,1))$
1239 См. @code{axis_left}, @code{axis_top}, @code{axis_right} и @code{axis_3d}.
1241 @opencatbox{Категории:}
1242 @category{Пакет draw}
1249 @defvr {Графическая опция} axis_left
1250 Значение по умолчанию: @code{true}
1252 Если @code{axis_left} равно @code{true}, то на двумерных сценах изображается левая ось.
1254 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1261 (%i2) draw2d(axis_left = false,
1262 explicit(x^3,x,-1,1))$
1265 См. @code{axis_bottom}, @code{axis_top}, @code{axis_right} и @code{axis_3d}.
1267 @opencatbox{Категории:}
1268 @category{Пакет draw}
1275 @defvr {Графическая опция} axis_top
1276 Значение по умолчанию: @code{true}
1278 Если @code{axis_top} равно @code{true}, то на двумерных сценах отображается верхняя ось.
1280 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1287 (%i2) draw2d(axis_top = false,
1288 explicit(x^3,x,-1,1))$
1291 См. @code{axis_bottom}, @code{axis_left}, @code{axis_right} и @code{axis_3d}.
1293 @opencatbox{Категории:}
1294 @category{Пакет draw}
1301 @defvr {Графическая опция} axis_right
1302 Значение по умолчанию: @code{true}
1304 Если @code{axis_right} равно @code{true}, то на двумерных сценах отображается правая ось.
1306 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1313 (%i2) draw2d(axis_right = false,
1314 explicit(x^3,x,-1,1))$
1317 См. @code{axis_bottom}, @code{axis_left}, @code{axis_top} и @code{axis_3d}.
1319 @opencatbox{Категории:}
1320 @category{Пакет draw}
1327 @defvr {Графическая опция} axis_3d
1328 Значение по умолчанию: @code{true}
1330 Если @code{axis_3d} равно @code{true}, то оси @var{x}, @var{y} и @var{z} изображаются на
1333 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
1340 (%i2) draw3d(axis_3d = false,
1341 explicit(sin(x^2+y^2),x,-2,2,y,-2,2) )$
1344 См. @code{axis_bottom}, @code{axis_left}, @code{axis_top} и @code{axis_right} для двух измерений.
1346 @opencatbox{Категории:}
1347 @category{Пакет draw}
1356 @defvr {Графическая опция} palette
1357 Значение по умолчанию: @code{color}
1359 @code{palette} определяет, как отобразить реальные значения матрицы,
1360 передаваемые в объект @code{image}, в компоненты цвета.
1362 @code{palette} -- вектор тремя компонентами со значеним в пределах от -36 до +36.
1363 Каждое значение является индексом для формулы, отображающей уровни в красный,
1364 зеленый и синий цвета соответственно:
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
1380 Отрицательные числа означают отрицательные цветовые компоненты.
1382 @code{palette = gray} и @code{palette = color} являются сокращениями
1383 для @code{palette = [3,3,3]} и @code{palette = [7,5,15]} соответственно.
1385 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
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],
1400 image(im,0,0,30,30))$
1403 См. @code{colorbox}.
1405 @opencatbox{Категории:}
1406 @category{Пакет draw}
1414 @defvr {Графическая опция} colorbox
1415 Значение по умолчанию: @code{true}
1417 Если @code{colorbox} равно @code{true}, то палитра цветов изображается вместе с
1418 объектами изображения @code{image}.
1420 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
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))$
1435 @opencatbox{Категории:}
1436 @category{Пакет draw}
1443 @defvr {Графическая опция} enhanced3d
1444 Значение по умолчанию: @code{false}
1446 Если @code{enhanced3d} равно @code{true}, то поверхности в трехмерных графиках окрашиваются,
1447 другими словами, включается Gnuplot мода pm3d.
1449 См. @code{palette} для того, чтобы узнать как задается палитра.
1455 (%i2) draw3d(surface_hide = true,
1458 explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$
1461 @opencatbox{Категории:}
1462 @category{Пакет draw}
1469 @defvr {Графическая опция} point_size
1470 Значение по умолчанию: 1
1472 @code{point_size} -- устанавливает размер изображаемых точек.
1473 Значение должно быть неотрицательным числом.
1475 Эта опция влияет на следующие графические объекты:
1478 @code{gr2d}: @code{points}.
1481 @code{gr3d}: @code{points}.
1488 (%i2) draw2d(points(makelist([random(20),random(50)],k,1,10)),
1490 points(makelist(k,k,1,20),makelist(random(30),k,1,20)))$
1493 @opencatbox{Категории:}
1494 @category{Пакет draw}
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 Эта опция влияет на следующие графические объекты:
1515 @code{gr2d}: @code{points}.
1518 @code{gr3d}: @code{points}.
1525 (%i2) draw2d(xrange = [0,10],
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]]),
1537 points([[1,5],[5,5],[9,5]]),
1539 points([[1,6],[5,6],[9,6]]),
1540 point_type = filled_circle,
1541 points([[1,7],[5,7],[9,7]]),
1543 points([[1,8],[5,8],[9,8]]),
1544 point_type = filled_diamant,
1545 points([[1,9],[5,9],[9,9]]) )$
1548 @opencatbox{Категории:}
1549 @category{Пакет draw}
1556 @defvr {Графическая опция} points_joined
1557 Значение по умолчанию: @code{false}
1559 Если @code{points_joined} равно @code{true}, то точки соединяются линиями.
1561 Эта опция влияет на следующие графические объекты:
1564 @code{gr2d}: @code{points}.
1567 @code{gr3d}: @code{points}.
1574 (%i2) draw2d(xrange = [0,10],
1577 point_type = up_triangle,
1579 points([[1,1],[5,1],[9,1]]),
1580 points_joined = true,
1581 point_type = square,
1583 points([[1,2],[5,2],[9,2]]),
1584 point_type = circle,
1587 points([[1,3],[5,3],[9,3]]) )$
1590 @opencatbox{Категории:}
1591 @category{Пакет draw}
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}.
1613 Область, ограниченная объектом @code{explicit} и низом графического окна.
1616 (%i2) draw2d(fill_color = red,
1618 explicit(sin(x),x,0,10) )$
1621 Область, ограниченная объектом @code{explicit} и функцией, определенной
1622 в @code{filled_func}. Отметим, что переменная в @code{filled_func}
1623 должна быть той же, что и в @code{explicit}.
1626 (%i2) draw2d(fill_color = grey,
1627 filled_func = sin(x),
1628 explicit(-sin(x),x,0,%pi));
1631 См. @code{fill_color} и @code{explicit}.
1633 @opencatbox{Категории:}
1634 @category{Пакет draw}
1641 @defvr {Графическая опция} transparent
1642 Значение по умолчанию: @code{false}
1644 Если @code{transparent} равно @code{true}, то внутренняя область многоугольников
1645 заполняется в соответствии с @code{fill_color}.
1647 Эта опция влияет на следующие графические объекты:
1650 @code{gr2d}: @code{polygon}, @code{rectangle} и @code{ellipse}.
1657 (%i2) draw2d(polygon([[3,2],[7,2],[5,5]]),
1660 polygon([[5,2],[9,2],[7,5]]) )$
1663 @opencatbox{Категории:}
1664 @category{Пакет draw}
1671 @defvr {Графическая опция} border
1672 Значение по умолчанию: @code{true}
1674 Если @code{border} равно @code{true}, то границы многоугольников изображаются в
1675 соответствии с опциями @code{line_type} и @code{line_width}.
1677 Эта опция влияет на следующие графические объекты:
1680 @code{gr2d}: @code{polygon}, @code{rectangle} и @code{ellipse}.
1687 (%i2) draw2d(color = brown,
1689 polygon([[3,2],[7,2],[5,5]]),
1692 polygon([[5,2],[9,2],[7,5]]) )$
1695 @opencatbox{Категории:}
1696 @category{Пакет draw}
1703 @defvr {Графическая опция} head_both
1704 Значение по умолчанию: @code{false}
1706 Если @code{head_both} равно @code{true}, то векторы изображаются со окончаниями в форме двух стрелок.
1707 Если @code{false}, то изображается только одна стрелка.
1709 Эта опция влияет только на объекты типа @code{vector}.
1715 (%i2) draw2d(xrange = [0,8],
1718 vector([1,1],[6,0]),
1720 vector([1,7],[6,0]) )$
1723 См. @code{head_length}, @code{head_angle} и @code{head_type}.
1725 @opencatbox{Категории:}
1726 @category{Пакет draw}
1733 @defvr {Графическая опция} head_length
1734 Значение по умолчанию: 2
1736 @code{head_length} задает длину наконечника стрелок в единицах оси @var{x}.
1738 Эта опция влияет только на объекты типа @code{vector}.
1744 (%i2) draw2d(xrange = [0,12],
1746 vector([0,1],[5,5]),
1748 vector([2,1],[5,5]),
1750 vector([4,1],[5,5]),
1752 vector([6,1],[5,5]))$
1755 См. @code{head_both}, @code{head_angle} и @code{head_type}.
1757 @opencatbox{Категории:}
1758 @category{Пакет draw}
1765 @defvr {Графическая опция} head_angle
1766 Значение по умолчанию: 45
1768 @code{head_angle} задает угол в градусах между стронами наконечника стрелки и ее осью.
1770 Эта опция влияет только на объекты типа @code{vector}.
1776 (%i2) draw2d(xrange = [0,10],
1780 vector([1,1],[0,6]),
1782 vector([2,1],[0,6]),
1784 vector([3,1],[0,6]),
1786 vector([4,1],[0,6]),
1788 vector([5,1],[0,6]),
1790 vector([6,1],[0,6]),
1792 vector([7,1],[0,6]),
1794 vector([8,1],[0,6]),
1796 vector([9,1],[0,6]) )$
1799 См. @code{head_both}, @code{head_length} и @code{head_type}.
1801 @opencatbox{Категории:}
1802 @category{Пакет draw}
1809 @defvr {Графическая опция} head_type
1810 Значение по умолчанию: @code{filled}
1812 @code{head_type} задает способ изображения наконечника стрелок.
1813 Возможны значения: @code{filled} (замкнутые и заполненные наконечники), @code{empty}
1814 (замкнутые и пустые наконечники) и @code{nofilled} (открытые наконечники).
1816 Эта опция влияет только на объекты типа @code{vector}.
1822 (%i2) draw2d(xrange = [0,12],
1825 vector([0,1],[5,5]), /* default type */
1827 vector([3,1],[5,5]),
1828 head_type = 'nofilled,
1829 vector([6,1],[5,5]))$
1832 См. @code{head_both}, @code{head_angle} и @code{head_length}.
1834 @opencatbox{Категории:}
1835 @category{Пакет draw}
1841 @defvr {Графическая опция} unit_vectors
1842 Значение по умолчанию: @code{false}
1844 Если @code{unit_vectors} равно @code{true}, все вектора изображаются с единичной длиной.
1845 Это полезно при изображении векторных полей. Если @code{unit_vectors} равно @code{false},
1846 то вектора изображаются с их настоящей длиной.
1848 Эта опция влияет только на объекты типа @code{vector}.
1854 (%i2) draw2d(xrange = [-1,6],
1857 vector([0,0],[5,2]),
1858 unit_vectors = true,
1860 vector([0,3],[5,2]))$
1863 @opencatbox{Категории:}
1864 @category{Пакет draw}
1870 @defvr {Графическая опция} label_alignment
1871 Значение по умолчанию: @code{center}
1873 @code{label_alignment} определяет положение меток, по отношению к заданным координатам.
1874 Возможны значения: @code{center},
1875 @code{left} и @code{right}.
1877 Эта опция влияет только на объекты типа @code{label}.
1883 (%i2) draw2d(xrange = [0,10],
1885 points_joined = true,
1886 points([[5,0],[5,10]]),
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]))$
1895 См. @code{label_orientation} и @code{color}.
1897 @opencatbox{Категории:}
1898 @category{Пакет draw}
1905 @defvr {Графическая опция} label_orientation
1906 Значение по умолчанию: @code{horizontal}
1908 @code{label_orientation} определяет ориентацию меток.
1909 Возможны значения: @code{horizontal} и @code{vertical}.
1911 Эта опция влияет только на объекты типа @code{label}.
1915 В этом примере к изображению добавлена фиктивная точка.
1916 Пакет @code{draw} требует непустые данные, чтобы изобразить сцену.
1919 (%i2) draw2d(xrange = [0,10],
1924 label(["Horizontal orientation (default)",5,2]),
1925 label_orientation = 'vertical,
1927 label(["Vertical orientation",1,5]))$
1930 См. @code{label_alignment} и @code{color}.
1932 @opencatbox{Категории:}
1933 @category{Пакет draw}
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"}.
1974 (%i2) draw2d(explicit(x^2,x,-1,1), /* default is black */
1976 explicit(0.5 + x^2,x,-1,1),
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),
1982 label(["This is a label",0,1.2]) )$
1985 См. @code{fill_color}.
1987 @opencatbox{Категории:}
1988 @category{Пакет draw}
1995 @defvr {Графическая опция} fill_color
1996 Значение по умолчанию: @code{"red"}
1998 @code{fill_color} определяет цвет для заполнения многоугольников и двумерных @code{explicit} функций.
2000 См. @code{color} для способа задания цвета.
2002 @opencatbox{Категории:}
2003 @category{Пакет draw}
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}
2026 @defvr {Графическая опция} line_width
2027 Значение по умолчанию: 1
2029 @code{line_width} -- ширина изображаемых линий.
2030 Значение должно быть положительным числом.
2032 Эта опция влияет на следующие графические объекты:
2035 @code{gr2d}: @code{points}, @code{polygon}, @code{rectangle},
2036 @code{ellipse}, @code{vector}, @code{explicit}, @code{implicit},
2037 @code{parametric} и @code{polar}.
2040 @code{gr3d}: @code{points} и @code{parametric}.
2047 (%i2) draw2d(explicit(x^2,x,-1,1), /* default width */
2049 explicit(1 + x^2,x,-1,1),
2051 explicit(2 + x^2,x,-1,1))$
2054 См. @code{line_type}.
2056 @opencatbox{Категории:}
2057 @category{Пакет draw}
2064 @defvr {Графическая опция} line_type
2065 Значение по умолчанию: @code{solid}
2067 @code{line_type} -- задает стиль изображения линий.
2068 Возможные значения: @code{solid} и @code{dots}.
2070 Эта опция влияет на следующие графические объекты:
2073 @code{gr2d}: @code{points}, @code{polygon}, @code{rectangle},
2074 @code{ellipse}, @code{vector}, @code{explicit}, @code{implicit},
2075 @code{parametric} и @code{polar}.
2078 @code{gr3d}: @code{points}, @code{explicit}, @code{parametric} и @code{parametric_surface}.
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))$
2091 См. @code{line_width}.
2093 @opencatbox{Категории:}
2094 @category{Пакет draw}
2101 @defvr {Графическая опция} nticks
2102 Значение по умолчанию: 30
2104 @code{nticks} -- число пробных точек, используемых в графических процедурах.
2106 Эта опция влияет на следующие графические объекты:
2109 @code{gr2d}: @code{ellipse}, @code{explicit}, @code{parametric} и @code{polar}.
2112 @code{gr3d}: @code{parametric}.
2119 (%i2) draw2d(transparent = true,
2120 ellipse(0,0,4,2,0,180),
2122 ellipse(0,0,4,2,180,180) )$
2125 @opencatbox{Категории:}
2126 @category{Пакет draw}
2133 @defvr {Графическая опция} adapt_depth
2134 Значение по умолчанию: 10
2136 @code{adapt_depth} -- максимальное число разбиений, используемое в адаптивных графиках.
2138 Эта опция влияет только на двумерные @code{explicit} функции.
2140 @opencatbox{Категории:}
2141 @category{Пакет draw}
2148 @defvr {Графическая опция} key
2149 Значение по умолчанию: @code{""} (пустая строка)
2151 @code{key} -- наименование функции в легенде. Если @code{key} -- пустая строка, то ничего не изображается.
2153 Эта опция влияет на следующие графические объекты:
2156 @code{gr2d}: @code{points}, @code{polygon}, @code{rectangle},
2157 @code{ellipse}, @code{vector}, @code{explicit}, @code{implicit},
2158 @code{parametric} и @code{polar}.
2161 @code{gr3d}: @code{points}, @code{explicit}, @code{parametric}
2162 и @code{parametric_surface}.
2169 (%i2) draw2d(key = "Sinus",
2170 explicit(sin(x),x,0,10),
2173 explicit(cos(x),x,0,10) )$
2176 @opencatbox{Категории:}
2177 @category{Пакет draw}
2184 @defvr {Графическая опция} xu_grid
2185 Значение по умолчанию: 30
2187 @code{xu_grid} -- число координат первой переменной
2188 (@code{x} в явной и @code{u} в параметрической трехмерной поверхности)
2189 для построения сетки пробных точек.
2191 Эта опция влияет на следующие графические объекты:
2194 @code{gr3d}: @code{explicit} и @code{parametric_surface}.
2201 (%i2) draw3d(xu_grid = 10,
2203 explicit(x^2+y^2,x,-3,3,y,-3,3) )$
2208 @opencatbox{Категории:}
2209 @category{Пакет draw}
2216 @defvr {Графическая опция} yv_grid
2217 Значение по умолчанию: 30
2219 @code{yv_grid} -- число координат второй переменной
2220 (@code{y} в явной и @code{v} в параметрической трехмерной поверхности)
2221 для построения сетки пробных точек.
2223 Эта опция влияет на следующие графические объекты:
2226 @code{gr3d}: @code{explicit} и @code{parametric_surface}.
2233 (%i2) draw3d(xu_grid = 10,
2235 explicit(x^2+y^2,x,-3,3,y,-3,3) )$
2240 @opencatbox{Категории:}
2241 @category{Пакет draw}
2248 @defvr {Графическая опция} surface_hide
2249 Значение по умолчанию: @code{false}
2251 Если @code{surface_hide} равно @code{true}, то скрытые части на трехмерных поверхностях не изображаются.
2253 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
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)) )$
2266 @opencatbox{Категории:}
2267 @category{Пакет draw}
2274 @defvr {Графическая опция} contour
2275 Значение по умолчанию: @code{none}
2277 Опция @code{contour} позволяет пользователю выбрать, где изображать контурные линии.
2278 Доступны следующие значения:
2284 нет контурных линий.
2288 контурные линии изображаются на xy плоскости.
2292 контурные линии изображаются на поверхности.
2296 две контурные линии -- на поверхности и на плоскости xy.
2300 контурные линии проецируются на плоскость xy, а точка наблюдения расположена
2301 вертикально над этой плоскостью.
2305 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
2312 (%i2) draw3d(explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
2313 contour_levels = 15,
2315 surface_hide = true) $
2318 @opencatbox{Категории:}
2319 @category{Пакет draw}
2326 @defvr {Графическая опция} contour_levels
2327 Значение по умолчанию: 5
2329 Эта опция управляет способом изображения контуров.
2330 @code{contour_levels} может иметь значение в виде положительного целого числа,
2331 списка трех чисел или произвольного набора чисел:
2335 Если @code{contour_levels} равно положительному целому числу @var{n},
2336 то будет изображено @var{n} контурных линий через равный интервал.
2337 По умолчанию изображается пять равноудаленных контурных линий.
2340 Если @code{contour_levels} равно списку трех чисел @code{[lowest,s,highest]},
2341 то контурные линии изображаются с @code{lowest} по @code{highest} с шагом @code{s}.
2344 Если @code{contour_levels} равно набору чисел @code{@{n1, n2, ...@}},
2345 то контурные линии изображаются для значений @code{n1}, @code{n2}, ...
2348 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
2353 Контурные линии, расположенные на равном расстоянии.
2354 Число уровней можно настраивать.
2357 (%i2) draw3d(color = green,
2358 explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
2359 contour_levels = 10,
2361 surface_hide = true) $
2365 Контурные линии от -8 до 8 с шагом 4.
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],
2372 surface_hide = true) $
2375 Контурные линии на уровне -7, -6, 0.8 и 5.
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@},
2382 surface_hide = true) $
2387 @opencatbox{Категории:}
2388 @category{Пакет draw}
2395 @defvr {Графическая опция} columns
2396 Значение по умолчанию: 1
2398 @code{columns} число колонок в множественных графиках.
2400 Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
2401 Она также может использоваться как аргумент функции @code{draw}.
2407 (%i2) scene1: gr2d(title="Ellipse",
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)$
2415 @opencatbox{Категории:}
2416 @category{Пакет draw}
2423 @defvr {Графическая опция} ip_grid
2424 Значение по умолчанию: @code{[50, 50]}
2426 @code{ip_grid} задает решетку для первой пробной выборки для неявных графиков.
2428 Эта опция влияет только на объекты типа @code{implicit}.
2430 @opencatbox{Категории:}
2431 @category{Пакет draw}
2438 @defvr {Графическая опция} ip_grid_in
2439 Значение по умолчанию: @code{[5, 5]}
2441 @code{ip_grid_in} задает решетку для второй пробной выборки для неявных графиков.
2443 Эта опция влияет только на объекты типа @code{implicit}.
2445 @opencatbox{Категории:}
2446 @category{Пакет draw}
2452 @defvr {Графическая опция} x_voxel
2453 Значение по умолчанию: 10
2455 @code{x_voxel} есть число вокселей в направлении x, используемых в
2456 @i{алгоритме марширующих кубов}, реализованном лоя трехмерных @code{implicit} объектов.
2458 @opencatbox{Категории:}
2459 @category{Пакет draw}
2464 @defvr {Графическая опция} y_voxel
2465 Значение по умолчанию: 10
2467 @code{y_voxel} есть число вокселей в направлении y, используемых в
2468 @i{алгоритме марширующих кубов}, реализованном лоя трехмерных @code{implicit} объектов.
2470 @opencatbox{Категории:}
2471 @category{Пакет draw}
2476 @defvr {Графическая опция} z_voxel
2477 Значение по умолчанию: 10
2479 @code{z_voxel} есть число вокселей в направлении z, используемых в
2480 @i{алгоритме марширующих кубов}, реализованном лоя трехмерных @code{implicit} объектов.
2482 @opencatbox{Категории:}
2483 @category{Пакет draw}
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}
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}
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}.
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 то абсциссы выбираются автоматически.
2593 key = "Small points",
2594 points(makelist([random(20),random(50)],k,1,10)),
2595 point_type = circle,
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",
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 строит соответствующие точки.
2616 Одна трехмерная выборка:
2619 (%i2) load ("numericalio")$
2620 (%i3) s2 : read_matrix (file_search ("wind.data"))$
2621 (%i4) draw3d(title = "Daily average wind speeds",
2623 points(args(submatrix (s2, 4, 5))) )$
2626 Две трехмерные выборки:
2629 (%i2) load ("numericalio")$
2630 (%i3) s2 : read_matrix (file_search ("wind.data"))$
2632 title = "Daily average wind speeds. Two data sets",
2634 key = "Sample from stations 1, 2 and 3",
2635 points(args(submatrix (s2, 4, 5))),
2637 key = "Sample from stations 1, 4 and 5",
2638 points(args(submatrix (s2, 2, 3))) )$
2641 @opencatbox{Категории:}
2642 @category{Пакет draw}
2648 @deffn {Графический объект} polygon ([[@var{x1},@var{y1}], [@var{x2},@var{y2}],...])
2649 @deffnx {Графический объект} polygon ([@var{x1},@var{x2},...], [@var{y1},@var{y2},...])
2650 Строит многоугольник в двух измерениях.
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}.
2666 (%i2) draw2d(color = "#e245f0",
2668 polygon([[3,2],[7,2],[5,5]]),
2670 fill_color = yellow,
2671 polygon([[5,2],[9,2],[7,5]]) )$
2674 @opencatbox{Категории:}
2675 @category{Пакет draw}
2681 @deffn {Графический объект} rectangle ([@var{x1},@var{y1}], [@var{x2},@var{y2}])
2682 Строит прямоугольники в двух измерениях.
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}.
2697 (%i2) draw2d(fill_color = red,
2700 transparent = false,
2702 rectangle([-2,-2],[8,-1]), /* opposite vertices */
2706 rectangle([9,4],[2,-1.5]),
2708 yrange = [-3,4.5] )$
2711 @opencatbox{Категории:}
2712 @category{Пакет draw}
2719 @deffn {Графический объект} bars ([@var{x1},@var{h1},@var{w1}], [@var{x2},@var{h2},@var{w2}, ...])
2720 Строит вертикальные полоски в двух измерениях.
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}.
2739 bars([0.8,5,0.4],[1.8,7,0.4],[2.8,-4,0.4]),
2744 bars([1.2,4,0.4],[2.2,-2,0.4],[3.2,5,0.4]),
2748 @opencatbox{Категории:}
2749 @category{Пакет draw}
2756 @deffn {Графический объект} ellipse (@var{xc}, @var{yc}, @var{a}, @var{b}, @var{ang1}, @var{ang2})
2757 Строит эллипсы и круги в двух измерениях.
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} до угла
2767 Следующие @i{графические опции} влияют на этот объект: @code{nticks},
2768 @code{transparent}, @code{fill_color}, @code{border}, @code{line_width},
2769 @code{line_type}, @code{key} и @code{color}.
2775 (%i2) draw2d(transparent = false,
2778 transparent = false,
2780 ellipse(0,6,3,2,270,-270),
2781 /* center (x,y), a, b, start & end in degrees */
2785 ellipse(2.5,6,2,3,30,-90),
2790 @opencatbox{Категории:}
2791 @category{Пакет draw}
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}.
2806 @code{label([@var{string},@var{x},@var{y}])} изображает текст @var{string} в точке
2807 @code{[@var{x},@var{y}]}.
2813 (%i2) draw2d(yrange = [0.1,1.4],
2815 label(["Label in red",0,0.3]),
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]) )$
2825 @code{label([@var{string},@var{x},@var{y},@var{z}])} изображает текст @var{string} в точке
2826 @code{[@var{x},@var{y},@var{z}]}.
2832 (%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3),
2834 label(["UP 1",-2,0,3], ["UP 2",1.5,0,4]),
2836 label(["DOWN 1",2,0,-3]) )$
2839 @opencatbox{Категории:}
2840 @category{Пакет draw}
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}.
2857 @code{vector([@var{x},@var{y}], [@var{dx},@var{dy}])} строит вектор
2858 @code{[@var{dx},@var{dy}]} с началом в точке @code{[@var{x},@var{y}]}.
2864 (%i2) draw2d(xrange = [0,12],
2867 vector([0,1],[5,5]), /* default type */
2869 vector([3,1],[5,5]),
2871 head_type = 'nofilled,
2873 vector([6,1],[5,5]))$
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}]}.
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)) )$
2892 @opencatbox{Категории:}
2893 @category{Пакет draw}
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 Строит явную функцию в двух или трех измерениях.
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}.
2916 (%i2) draw2d(line_width = 3,
2918 explicit(x^2,x,-3,3) )$
2919 (%i3) draw2d(fill_color = brown,
2921 explicit(x^2,x,-3,3) )$
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}.
2938 (%i2) draw3d(key = "Gauss",
2940 explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3),
2944 explicit(x+y,x,-5,5,y,-5,5),
2945 surface_hide = true)$
2948 См. @code{filled_func} по поводу функций с заполнением.
2950 @opencatbox{Категории:}
2951 @category{Пакет draw}
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 Строит неявную функцию в двух и трех измерениях.
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}.
2974 (%i2) draw2d(terminal = eps,
2977 key = "y^2=x^3-2*x+1",
2978 implicit(y^2=x^3-2*x+1, x, -4,4, y, -4,4),
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" )$
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}.
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),
3008 @opencatbox{Категории:}
3009 @category{Пакет draw}
3015 @deffn {Графический объект} polar (@var{radius},@var{ang},@var{minang},@var{maxang})
3016 Строит двумерную функцию в полярных координатах.
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}.
3031 (%i2) draw2d(user_preamble = "set grid polar",
3037 title = "Hyperbolic Spiral",
3038 polar(10/theta,theta,1,10*%pi) )$
3041 @opencatbox{Категории:}
3042 @category{Пакет draw}
3048 @deffn {Графический объект} spherical (@var{radius},@var{azi},@var{minazi},@var{maxazi},@var{zen},@var{minzen},@var{maxzen})
3049 Строит трехмерную функцию в сферических координатах.
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}.
3065 (%i2) draw3d(spherical(1,a,0,2*%pi,z,0,%pi))$
3068 @opencatbox{Категории:}
3069 @category{Пакет draw}
3075 @deffn {Графический объект} cylindrical (@var{radius},@var{z},@var{minz},@var{maxz},@var{azi},@var{minazi},@var{maxazi})
3076 Строит трехмерную функцию в цилиндрических координатах.
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}.
3092 (%i2) draw3d(cylindrical(1,z,-2,2,az,0,2*%pi))$
3095 @opencatbox{Категории:}
3096 @category{Пакет draw}
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}.
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}.
3119 (%i2) draw2d(explicit(exp(x),x,-1,3),
3121 key = "This is the parametric one!!",
3122 parametric(2*cos(rrr),rrr^2,rrr,0,2*%pi))$
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}.
3135 (%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3),
3137 parametric(cos(5*u)^2,sin(7*u),u-2,u,0,2),
3140 parametric(t^2,sin(t),2+t,t,0,2),
3141 surface_hide = true,
3142 title = "Surface & curves" )$
3145 @opencatbox{Категории:}
3146 @category{Пакет draw}
3152 @deffn {Графический объект} image (@var{im},@var{x0},@var{y0},@var{width},@var{height})
3153 Строит в двух измерениях.
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 зеленый и синий цвета соответственно:
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
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 то они интерпретируются как красный, зеленый и синий цвета.
3193 Если @var{im} -- матрица вещественных чисел или объект @var{картина уровней},
3194 то значения пикселов интерпретируются в соответствии с графической опцией @code{palette}.
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],
3205 image(im,0,0,30,30))$
3208 См. @code{colorbox}.
3210 Если @var{im} -- матрица векторов длины 3 или объект @var{rgb-картина},
3211 то они интерпретируются как красный, зеленый и синий цвета.
3217 makelist([random(300),
3219 random(300)],i,1,30),i,1,30))$
3220 (%i3) draw2d(image(im,0,0,30,30))$
3223 Пакет @code{draw} автоматически загружает пакет @code{picture}.
3224 В данном примере, объект типа @var{картина уровней} строится вручную
3225 и потом изображается.
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))$
3237 Файл xpm читается и изображается.
3240 (%i2) im: read_xpm("myfile.xpm")$
3241 (%i3) draw2d(image(im,0,0,10,7))$
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}
3256 @defvr {Глобальная переменная} boundaries_array
3257 Значение по умолчанию: @code{false}
3259 @code{boundaries_array} -- это массив, в котором графический объект @code{geomap}
3260 ищет координаты границ.
3262 Каждая компонента @code{boundaries_array} есть массив чисел с плавающей точкой --
3263 координат многоугольного сегмента или границы карты.
3267 @opencatbox{Категории:}
3268 @category{Пакет draw}
3274 @deffn {Графический объект} geomap (@var{numlist})
3275 @deffnx {Графический объект} geomap (@var{numlist},@var{3Dprojection})
3276 Строит карты в двух и трех измерениях.
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}.
3297 Простая карта, определенная вручную:
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]))$
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}.
3337 (%i2) load("worldmap")$
3338 (%i3) c1: gr2d(geomap(Canada,United_States,
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,
3348 Пакет @code{worldmap} также полезен для изображения
3349 стран в виде многоугольников. В этом случае графический объект
3350 @code{geomap} не нужен и вместо его используется объект @code{polygon}.
3351 Т.к. в этом случае используются списки а не массивы, то изображение
3352 карт будет мудреннее. См. @code{make_poly_country}
3353 и @code{make_poly_continent}, чтобы понять следующий код.
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)$
3372 @code{geomap (@var{numlist})} проецирует границы карты на сферу единичного радиуса с центром (0,0,0).
3373 Сферу и тип проекции можно изменить при помощи @code{geomap (@var{numlist},@var{3Dprojection})}.
3375 Доступны следующие трехмерные проекции:
3379 @code{[spherical_projection,@var{x},@var{y},@var{z},@var{r}]}: проецирует границы карты на сферу
3380 радиуса @var{r} с центром в (@var{x},@var{y},@var{z}).
3383 (%i2) load("worldmap")$
3384 (%i3) draw3d(geomap(Australia), /* default projection */
3386 [spherical_projection,2,2,2,3]))$
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}).
3395 (%i2) load("worldmap")$
3396 (%i3) draw3d(geomap([America_coastlines,Eurasia_coastlines],
3397 [cylindrical_projection,2,2,2,3,4]))$
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}). Оба северный и южный конусы касательны к сфере.
3407 (%i2) load("worldmap")$
3408 (%i3) draw3d(geomap(World_coastlines,
3409 [conic_projection,0,0,0,1,90]))$
3413 См. @url{http://www.telefonica.net/web2/biomates/maxima/gpdraw/geomap}
3414 для более сложных примеров.
3416 @opencatbox{Категории:}
3417 @category{Пакет draw}
3429 @deffn {Графический объект} parametric_surface (@var{xfun},@var{yfun},@var{zfun},@var{par1},@var{par1min},@var{par1max},@var{par2},@var{par2min},@var{par2max})
3430 Строит параметрическую поверхность в трех измерениях.
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}.
3446 (%i2) draw3d(title = "Sea shell",
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) )$
3458 @opencatbox{Категории:}
3459 @category{Пакет draw}
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")}.
3491 (%i2) scene1: gr2d(title="Ellipse",
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)$
3499 Эти две команды эквивалентны:
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)]
3508 Анимированный файл gif:
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)]
3522 См. @code{gr2d}, @code{gr3d}, @code{draw2d} и @code{draw3d}.
3524 @opencatbox{Категории:}
3525 @category{Пакет draw}
3526 @category{Вывод файлов}
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{Вывод файлов}
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{Вывод файлов}
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{картина}, содержащий следующие четыре части:
3587 @item символ @code{level}
3588 @item ширина картины
3589 @item высота картины
3590 @item массив целых чисел в пределах от 0 до 255, описывающих пикселы.
3591 Аргумент @var{data} должен содержать только числа в пределах от 0 до 255;
3592 отрицательные числа заменяются 0, а те, что превышают 255, заменяются на 255.
3597 Картина уровней из матрицы.
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)@})
3604 Картина уровней из числового списка.
3607 (%i2) make_level_picture([-2,0,54,%pi],2,2);
3608 (%o2) picture(level, 2, 2, @{Array: #(0 0 54 3)@})
3611 @opencatbox{Категории:}
3612 @category{Пакет draw}
3618 @deffn {Функция} picturep (@var{x})
3619 Возвращает @code{true}, если аргумент является правильно сформированной картиной,
3620 и @code{false} в противном случае.
3622 @opencatbox{Категории:}
3623 @category{Пакет draw}
3624 @category{Функции предикаты}
3630 @deffn {Функция} picture_equalp (@var{x},@var{y})
3631 Возвращает @code{true}, если картины совпадают, и @code{false} в противном случае.
3633 @opencatbox{Категории:}
3634 @category{Пакет draw}
3635 @category{Функции предикаты}
3641 @deffn {Функция} make_rgb_picture (@var{redlevel},@var{greenlevel},@var{bluelevel})
3642 Возвращает rgb-цветную @var{картину}. Все три аргумента должны быть картинами уровней,
3643 с уровнями, задающими красный, зеленый и синий цвета соответственно.
3645 Возвращаемый объект @var{картина} содержит следующие четыре части:
3648 @item символ @code{rgb}
3649 @item ширина картины
3650 @item высота картины
3651 @item целый массив длины @var{3*width*height} с данными о пикселах со значениями
3652 от 0 до 255. Каждый пиксел представляется тремя последовательными числами
3653 (красный, зелены, синий).
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)@})
3671 @opencatbox{Категории:}
3672 @category{Пакет draw}
3678 @deffn {Функция} take_channel (@var{im},@var{color})
3679 Если параметр @var{color} равен @code{red}, @code{green} или @code{blue},
3680 то функция @code{take_channel} возвращает соответствующий цветовой канал картины @var{im}.
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)@})
3698 @opencatbox{Категории:}
3699 @category{Пакет draw}
3705 @deffn {Функция} negative_picture (@var{pic})
3706 Возвращает негатив картины (@var{уровней} или @var{rgb}).
3708 @opencatbox{Категории:}
3709 @category{Пакет draw}
3715 @deffn {Функция} rgb2level (@var{pic})
3716 Преобразует @var{rgb} картину в картину @var{уровней}
3717 усреднением красного, зеленого и синего каналов.
3719 @opencatbox{Категории:}
3720 @category{Пакет draw}
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}
3737 @deffn {Функция} read_xpm (@var{xpm_file})
3738 Читает файл в формате xpm и возвращает объект типа картина.
3740 @opencatbox{Категории:}
3741 @category{Пакет draw}
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}) (нижний правый).
3764 Возвращает номера сегментов для северной Италии.
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(%))$
3773 @opencatbox{Категории:}
3774 @category{Пакет draw}
3780 @deffn {Функция} numbered_boundaries (@var{nlist})
3781 Строит многоугольные сегменты (границы), обозначаемые числами (координаты в @code{boundaries_array}).
3782 Эта функция очень полезна при создании географических объектов.
3786 Карта Европы, с границами, обозначенными номерами компонент в
3787 @code{boundaries_array}.
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)$
3796 @opencatbox{Категории:}
3797 @category{Пакет draw}
3803 @deffn {Функция} make_polygon (@var{nlist})
3804 Возвращает объект @code{polygon}, построенный из индексов границ. Аргумент
3805 @var{nlist} -- список компонент в массиве @code{boundaries_array}.
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 многоугольник может быть построен.
3823 (%i2) load("worldmap")$
3825 (%o3) [[171, 173, 1143]]
3826 (%i4) boundaries_array[171];
3828 #(88.750549 27.14727 88.806351 27.25305 88.901367 27.282221
3829 88.917877 27.321039)@}
3830 (%i5) boundaries_array[173];
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
3846 (%i6) boundaries_array[1143];
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)$
3859 @opencatbox{Категории:}
3860 @category{Пакет draw}
3866 @deffn {Функция} make_poly_country (@var{country_name})
3867 Строит многоугольники, необходимые для изображения страны в цвете.
3868 Если есть острова, то страна определяется более чем одним многоугольником.
3874 (%i2) load("worldmap")$
3875 (%i3) make_poly_country(India)$
3876 (%i4) apply(draw2d, %)$
3879 @opencatbox{Категории:}
3880 @category{Пакет draw}
3886 @deffn {Функция} make_poly_continent (@var{continent_name})
3887 @deffnx {Функция} make_poly_continent (@var{country_list})
3888 Строит многоугольники, необходимые для изображение континента или списка
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, %)$
3904 @opencatbox{Категории:}
3905 @category{Пакет draw}