Next: , Previous: , Up: Top   [Contents][Index]

46 Пакет draw


Next: , Previous: , Up: Пакет draw   [Contents][Index]

46.1 Введение в пакет draw

draw является интерфейсом Maxima к программе Gnuplot.

На уровне Maxima есть три основные функции: draw2d, draw3d и draw.

Более сложные примеры использования пакета можно найти по ссылке:

http://www.telefonica.net/web2/biomates/maxima/gpdraw

Для работы программы требуется Gnuplot 4.2.


Next: , Previous: , Up: Пакет draw   [Contents][Index]

46.2 Функции и переменные пакета draw

Графическая опция: xrange

Значение по умолчанию: auto

Если xrange равно auto, то диапазон координаты x вычисляется автоматически.

Если требуется определенный интервал x, он должен быть задан в форме списка, например xrange=[-2, 3].

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

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

См. yrange и zrange.

Графическая опция: yrange

Значение по умолчанию: auto

Если yrange равно auto, то диапазон координаты y вычисляется автоматически.

Если требуется определенный интервал y, он должен быть задан в форме списка, например yrange=[-2, 3].

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

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

См. xrange и zrange.

Графическая опция: zrange

Значение по умолчанию: auto

Если zrange равно auto, то диапазон координаты z вычисляется автоматически.

Если требуется определенный интервал z, он должен быть задан в форме списка, например zrange=[-2, 3].

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

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

См. xrange и yrange.

Графическая опция: logx

Значение по умолчанию: false

Если logx равно true, то ось x будет изображаться в логарифмической шкале.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

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

См. logy и logz.

Графическая опция: logy

Значение по умолчанию: false

Если logy равно true, то ось y будет изображаться в логарифмической шкале.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

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

См. logx и logz.

Графическая опция: logz

Значение по умолчанию: false

Если logz равно true, то ось z будет изображаться в логарифмической шкале.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

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

См. logx и logy.

Графическая опция: terminal

Значение по умолчанию: screen

Выбирает терминал, используемый программой Gnuplot. Возможные значения: screen (умолчание), png, jpg, eps, eps_color, gif, animated_gif и wxt.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения. Она также может использоваться как аргумент функции draw.

Примеры:

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

Файл анимированного gif:

(%i1) load("draw")$
(%i2) draw(
        delay     = 100,
        file_name = "zzz",
        terminal  = 'animated_gif,
        gr2d(explicit(x^2,x,-1,1)),
        gr2d(explicit(x^3,x,-1,1)),
        gr2d(explicit(x^4,x,-1,1)));
End of animation sequence
(%o2)          [gr2d(explicit), gr2d(explicit), gr2d(explicit)]

Опция delay возможна тоько для анимированного gif. В других случаях она игнорируется.

См. file_name, pic_width, pic_height и delay.

Графическая опция: grid

Значение по умолчанию: false

Если grid равно true, то на плоскости xy будет изображена сетка.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

(%i1) load("draw")$
(%i2) draw2d(grid = true,
             explicit(exp(u),u,-2,2))$
Графическая опция: title

Значение по умолчанию: "" (пустая строка)

Опция title – строка, содержащая основной заголовок сцены. По умолчанию заголовок отсутствует.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

(%i1) load("draw")$
(%i2) draw2d(explicit(exp(u),u,-2,2),
             title = "Exponential function")$
Графическая опция: xlabel

Значение по умолчанию: "" (пустая строка)

Опция xlabel – строка, содержащая метку для оси x. По умолчанию метка отсутствует.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

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

См. ylabel и zlabel.

Графическая опция: ylabel

Значение по умолчанию: "" (пустая строка)

Опция ylabel – строка, содержащая метку для оси y. По умолчанию метка отсутствует.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

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

См. xlabel и zlabel.

Графическая опция: zlabel

Значение по умолчанию: "" (пустая строка)

Опция zlabel – строка, содержащая метку для оси z. По умолчанию метка отсутствует.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

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

См. xlabel и ylabel.

Графическая опция: xtics

Значение по умолчанию: auto

Управляет методом изображения делений на оси x.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Примеры:

Деления отключены.

(%i1) load("draw")$
(%i2) draw2d(xtics = 'none,
             explicit(x^3,x,-1,1)  )$

Деления на каждой 1/4.

(%i1) load("draw")$
(%i2) draw2d(xtics = 1/4,
             explicit(x^3,x,-1,1)  )$

Деления на значениях от -3/4 до 3/4 с шагом 1/8.

(%i1) load("draw")$
(%i2) draw2d(xtics = [-3/4,1/8,3/4],
             explicit(x^3,x,-1,1)  )$

Деления в точках -1/2, -1/4 и 3/4.

(%i1) load("draw")$
(%i2) draw2d(xtics = {-1/2,-1/4,3/4},
             explicit(x^3,x,-1,1)  )$

Деления с метками.

(%i1) load("draw")$
(%i2) draw2d(xtics = {["High",0.75],["Medium",0],["Low",-0.75]},
             explicit(x^3,x,-1,1)  )$

См. ytics и ztics.

Графическая опция: ytics

Значение по умолчанию: auto

Управляет методом изображения делений на оси y.

См. xtics для полного описания.

Графическая опция: ztics

Значение по умолчанию: auto

Управляет методом изображения делений на оси z.

См. xtics для полного описания.

Графическая опция: xtics_rotate

Значение по умолчанию: false

Если xtics_rotate равно true, то деления на оси x поворачиваются на 90 градусов.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Графическая опция: ytics_rotate

Значение по умолчанию: false

Если ytics_rotate равно true, то деления на оси y поворачиваются на 90 градусов.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Графическая опция: ztics_rotate

Значение по умолчанию: false

Если ztics_rotate равно true, то деления на оси z поворачиваются на 90 градусов.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Графическая опция: xtics_axis

Значение по умолчанию: false

Если xtics_axis равно true, то деления и их метки изображаются вдоль оси x, если false, то деления изображаются на границе.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Графическая опция: ytics_axis

Значение по умолчанию: false

Если ytics_axis равно true, то деления и их метки изображаются вдоль оси y, если false, то деления изображаются на границе.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Графическая опция: ztics_axis

Значение по умолчанию: false

Если ztics_axis равно true, то деления и их метки изображаются вдоль оси z, если false, то деления изображаются на границе.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Графическая опция: xaxis

Значение по умолчанию: false

Если xaxis равно true, то ось x изображается.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

(%i1) load("draw")$
(%i2) draw2d(explicit(x^3,x,-1,1),
             xaxis       = true,
             xaxis_color = blue)$

См. xaxis_width, xaxis_type и xaxis_color.

Графическая опция: xaxis_width

Значение по умолчанию: 1

xaxis_width – толщина оси x. Значение должно быть положительным числом.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

(%i1) load("draw")$
(%i2) draw2d(explicit(x^3,x,-1,1),
             xaxis       = true,
             xaxis_width = 3)$

См. xaxis, xaxis_type и xaxis_color.

Графическая опция: xaxis_type

Значение по умолчанию: dots

xaxis_type – задает стиль изображения оси x. Возможные значения: solid и dots.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

(%i1) load("draw")$
(%i2) draw2d(explicit(x^3,x,-1,1),
             xaxis       = true,
             xaxis_type  = solid)$

См. xaxis, xaxis_width и xaxis_color.

Графическая опция: xaxis_color

Значение по умолчанию: "black"

xaxis_color – определяет цвет оси x axis. См. color для способа задания цвета.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

(%i1) load("draw")$
(%i2) draw2d(explicit(x^3,x,-1,1),
             xaxis       = true,
             xaxis_color = red)$

См. xaxis, xaxis_width и xaxis_type.

Графическая опция: yaxis

Значение по умолчанию: false

Если yaxis равно true, то ось y изображается.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

(%i1) load("draw")$
(%i2) draw2d(explicit(x^3,x,-1,1),
             yaxis       = true,
             yaxis_color = blue)$

См. yaxis_width, yaxis_type и yaxis_color.

Графическая опция: yaxis_width

Значение по умолчанию: 1

yaxis_width – толщина оси y. Значение должно быть положительным числом.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

(%i1) load("draw")$
(%i2) draw2d(explicit(x^3,x,-1,1),
             yaxis       = true,
             yaxis_width = 3)$

См. yaxis, yaxis_type и yaxis_color.

Графическая опция: yaxis_type

Значение по умолчанию: dots

yaxis_type – задает стиль изображения y. Возможные значения: solid и dots.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

(%i1) load("draw")$
(%i2) draw2d(explicit(x^3,x,-1,1),
             yaxis       = true,
             yaxis_type  = solid)$

См. yaxis, yaxis_width и yaxis_color.

Графическая опция: yaxis_color

Значение по умолчанию: "black"

yaxis_color – определяет цвет оси y axis. См. color для способа задания цвета.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

(%i1) load("draw")$
(%i2) draw2d(explicit(x^3,x,-1,1),
             yaxis       = true,
             yaxis_color = red)$

См. yaxis, yaxis_width и yaxis_type.

Графическая опция: zaxis

Значение по умолчанию: false

Если zaxis равно true, то ось x изображается на трехмерных графиках. Эта опция не влияет на двумерные графики.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

(%i1) load("draw")$
(%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
             zaxis       = true,
             zaxis_type  = solid,
             zaxis_color = blue)$

См. zaxis_width, zaxis_type и zaxis_color.

Графическая опция: zaxis_width

Значение по умолчанию: 1

zaxis_width – толщина оси z. Значение должно быть положительным числом. Эта опция не влияет на двумерные графики.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

(%i1) load("draw")$
(%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
             zaxis       = true,
             zaxis_type  = solid,
             zaxis_width = 3)$

См. zaxis, zaxis_type и zaxis_color.

Графическая опция: zaxis_type

Значение по умолчанию: dots

zaxis_type – задает стиль изображения оси z. Возможные значения: solid и dots. Эта опция не влияет на двумерные графики.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

(%i1) load("draw")$
(%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
             zaxis       = true,
             zaxis_type  = solid)$

См. zaxis, zaxis_width и zaxis_color.

Графическая опция: zaxis_color

Значение по умолчанию: "black"

zaxis_color – определяет цвет оси z axis. См. color для способа задания цвета. Эта опция не влияет на двумерные графики.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

(%i1) load("draw")$
(%i2) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1),
             zaxis       = true,
             zaxis_type  = solid,
             zaxis_color = red)$

См. zaxis, zaxis_width и zaxis_type.

Графическая опция: rot_vertical

Значение по умолчанию: 60

rot_vertical – угол поворота (в градусах) вокруг оси x точки наблюдения в трехмерных сценах.

Угол может быть в интервале [0, 180].

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

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

См. rot_horizontal.

Графическая опция: rot_horizontal

Значение по умолчанию: 30

rot_horizontal – угол поворота (в градусах) вокруг оси z точки наблюдения в трехмерных сценах.

Угол может быть в интервале [0, 360].

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

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

См. rot_vertical.

Графическая опция: xy_file

Значение по умолчанию: "" (пустая строка)

xy_file – имя файла, в котором будут сохранены координаты после щелчка мышкой и нажатия клавиши ’x’. По умолчанию координаты не сохраняются.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Графическая опция: user_preamble

Значение по умолчанию: "" (пустая строка)

Опытные пользователи Gnuplot могут использовать эту опцию для тонкой настройке поведения Gnuplot путем задания установок до комманд plot или splot.

Значение этой опции должно быть строкой или списком строк (по одной на строку).

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

Терминал dumb не поддерживается пакетом draw, но можно задать его при помощи опции user_preamble,

(%i1) load("draw")$
(%i2) draw2d(explicit(exp(x)-1,x,-1,1),
             parametric(cos(u),sin(u),u,0,2*%pi),
             user_preamble="set terminal dumb")$
Графическая опция: file_name

Значение по умолчанию: "maxima_out"

Это имя файла, в котром терминалы png, jpg, eps и eps_color сохраняют графику.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения. Она также может использоваться как аргумент функции draw.

Пример:

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

См. terminal, pic_width и pic_height.

Графическая опция: delay

Значение по умолчанию: 5

Это задержка в 1/100 секунды между кадрами анимированного gif.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения. Она также может использоваться как аргумент функции draw.

Пример:

(%i1) load("draw")$
(%i2) draw(
        delay     = 100,
        file_name = "zzz",
        terminal  = 'animated_gif,
        gr2d(explicit(x^2,x,-1,1)),
        gr2d(explicit(x^3,x,-1,1)),
        gr2d(explicit(x^4,x,-1,1)));
End of animation sequence
(%o2)          [gr2d(explicit), gr2d(explicit), gr2d(explicit)]

Опция delay применима только для анимированного gif. Для других случаев она игнорируется.

См. terminal, pic_width и pic_height.

Графическая опция: pic_width

Значение по умолчанию: 640

Это ширина изображения, создаваемого терминалами png и jpg.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения. Она также может использоваться как аргумент функции draw.

Пример:

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

См. terminal, file_name и pic_height.

Графическая опция: pic_height

Значение по умолчанию: 640

Это высота изображения, создаваемого терминалами png и jpg.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения. Она также может использоваться как аргумент функции draw.

Пример:

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

См. terminal, file_name и pic_width.

Графическая опция: eps_width

Значение по умолчанию: 12

Это ширина изображения Postscript (в сантиметрах), создаваемого терминалами eps и eps_color.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения. Она также может использоваться как аргумент функции draw.

Пример:

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

См. terminal, file_name и eps_height.

Графическая опция: eps_height

Значение по умолчанию: 8

Это высота изображения Postscript (в сантиметрах), создаваемого терминалами eps и eps_color.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения. Она также может использоваться как аргумент функции draw.

Пример:

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

См. terminal, file_name и eps_width.

Графическая опция: axis_bottom

Значение по умолчанию: true

Если axis_bottom равно true, то на двумерных сценах изображается нижняя ось.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

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

См. axis_left, axis_top, axis_right и axis_3d.

Графическая опция: axis_left

Значение по умолчанию: true

Если axis_left равно true, то на двумерных сценах изображается левая ось.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

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

См. axis_bottom, axis_top, axis_right и axis_3d.

Графическая опция: axis_top

Значение по умолчанию: true

Если axis_top равно true, то на двумерных сценах отображается верхняя ось.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

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

См. axis_bottom, axis_left, axis_right и axis_3d.

Графическая опция: axis_right

Значение по умолчанию: true

Если axis_right равно true, то на двумерных сценах отображается правая ось.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

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

См. axis_bottom, axis_left, axis_top и axis_3d.

Графическая опция: axis_3d

Значение по умолчанию: true

Если axis_3d равно true, то оси x, y и z изображаются на трехмерных сценах.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

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

См. axis_bottom, axis_left, axis_top и axis_right для двух измерений.

Графическая опция: palette

Значение по умолчанию: color

palette определяет, как отобразить реальные значения матрицы, передаваемые в объект image, в компоненты цвета.

palette – вектор тремя компонентами со значеним в пределах от -36 до +36. Каждое значение является индексом для формулы, отображающей уровни в красный, зеленый и синий цвета соответственно:

 0: 0               1: 0.5           2: 1
 3: x               4: x^2           5: x^3
 6: x^4             7: sqrt(x)       8: sqrt(sqrt(x))
 9: sin(90x)       10: cos(90x)     11: |x-0.5|
12: (2x-1)^2       13: sin(180x)    14: |cos(180x)|
15: sin(360x)      16: cos(360x)    17: |sin(360x)|
18: |cos(360x)|    19: |sin(720x)|  20: |cos(720x)|
21: 3x             22: 3x-1         23: 3x-2
24: |3x-1|         25: |3x-2|       26: (3x-1)/2
27: (3x-2)/2       28: |(3x-1)/2|   29: |(3x-2)/2|
30: x/0.32-0.78125 31: 2*x-0.84     32: 4x;1;-2x+1.84;x/0.08-11.5
33: |2*x - 0.5|    34: 2*x          35: 2*x - 0.5
36: 2*x - 1

Отрицательные числа означают отрицательные цветовые компоненты.

palette = gray и palette = color являются сокращениями для palette = [3,3,3] и palette = [7,5,15] соответственно.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Примеры:

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

См. colorbox.

Графическая опция: colorbox

Значение по умолчанию: true

Если colorbox равно true, то палитра цветов изображается вместе с объектами изображения image.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

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

См. palette.

Графическая опция: enhanced3d

Значение по умолчанию: false

Если enhanced3d равно true, то поверхности в трехмерных графиках окрашиваются, другими словами, включается Gnuplot мода pm3d.

См. palette для того, чтобы узнать как задается палитра.

Пример:

(%i1) load("draw")$
(%i2) draw3d(surface_hide = true,
             enhanced3d   = true,
             palette      = gray,
             explicit(20*exp(-x^2-y^2)-10,x,-3,3,y,-3,3))$
Графическая опция: point_size

Значение по умолчанию: 1

point_size – устанавливает размер изображаемых точек. Значение должно быть неотрицательным числом.

Эта опция влияет на следующие графические объекты:

Пример:

(%i1) load("draw")$
(%i2) draw2d(points(makelist([random(20),random(50)],k,1,10)),
        point_size = 5,
        points(makelist(k,k,1,20),makelist(random(30),k,1,20)))$
Графическая опция: point_type

Значение по умолчанию: 1

point_type определяет то, как изображаются изолированные точки. Значение этой опции может быть целое число больше или равное -1, или имя стиля точки: $none (-1), dot (0), plus (1), multiply (2), asterisk (3), square (4), filled_square (5), circle (6), filled_circle (7), up_triangle (8), filled_up_triangle (9), down_triangle (10), filled_down_triangle (11), diamant (12) и filled_diamant (13).

Эта опция влияет на следующие графические объекты:

Пример:

(%i1) load("draw")$
(%i2) draw2d(xrange = [0,10],
             yrange = [0,10],
             point_size = 3,
             point_type = diamant,
             points([[1,1],[5,1],[9,1]]),
             point_type = filled_down_triangle,
             points([[1,2],[5,2],[9,2]]),
             point_type = asterisk,
             points([[1,3],[5,3],[9,3]]),
             point_type = filled_diamant,
             points([[1,4],[5,4],[9,4]]),
             point_type = 5,
             points([[1,5],[5,5],[9,5]]),
             point_type = 6,
             points([[1,6],[5,6],[9,6]]),
             point_type = filled_circle,
             points([[1,7],[5,7],[9,7]]),
             point_type = 8,
             points([[1,8],[5,8],[9,8]]),
             point_type = filled_diamant,
             points([[1,9],[5,9],[9,9]]) )$
Графическая опция: points_joined

Значение по умолчанию: false

Если points_joined равно true, то точки соединяются линиями.

Эта опция влияет на следующие графические объекты:

Пример:

(%i1) load("draw")$
(%i2) draw2d(xrange        = [0,10],
             yrange        = [0,4],
             point_size    = 3,
             point_type    = up_triangle,
             color         = blue,
             points([[1,1],[5,1],[9,1]]),
             points_joined = true,
             point_type    = square,
             line_type     = dots,
             points([[1,2],[5,2],[9,2]]),
             point_type    = circle,
             color         = red,
             line_width    = 7,
             points([[1,3],[5,3],[9,3]]) )$
Графическая опция: filled_func

Значение по умолчанию: false

Опция filled_func управляет то, как заполняются области, ограниченные функциями. Если filled_func равно true, то область, ограниченная функцией, определенной объектом explicit и низом графического окна, заполняется цветом fill_color. Если filled_func содержит функциональное выражение, то будет заполнена область, ограниченная этой функцией и функцией, определенной объектом explicit. По умолчанию явные функции не заполняются.

Эта опция влияет только на двумерные графические объекты explicit.

Пример:

Область, ограниченная объектом explicit и низом графического окна.

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

Область, ограниченная объектом explicit и функцией, определенной в filled_func. Отметим, что переменная в filled_func должна быть той же, что и в explicit.

(%i1) load("draw")$
(%i2) draw2d(fill_color  = grey,
             filled_func = sin(x),
             explicit(-sin(x),x,0,%pi));

См. fill_color и explicit.

Графическая опция: transparent

Значение по умолчанию: false

Если transparent равно true, то внутренняя область многоугольников заполняется в соответствии с fill_color.

Эта опция влияет на следующие графические объекты:

Пример:

(%i1) load("draw")$
(%i2) draw2d(polygon([[3,2],[7,2],[5,5]]),
             transparent = true,
             color       = blue,
             polygon([[5,2],[9,2],[7,5]]) )$
Графическая опция: border

Значение по умолчанию: true

Если border равно true, то границы многоугольников изображаются в соответствии с опциями line_type и line_width.

Эта опция влияет на следующие графические объекты:

Пример:

(%i1) load("draw")$
(%i2) draw2d(color       = brown,
             line_width  = 8,
             polygon([[3,2],[7,2],[5,5]]),
             border      = false,
             fill_color  = blue,
             polygon([[5,2],[9,2],[7,5]]) )$
Графическая опция: head_both

Значение по умолчанию: false

Если head_both равно true, то векторы изображаются со окончаниями в форме двух стрелок. Если false, то изображается только одна стрелка.

Эта опция влияет только на объекты типа vector.

Пример:

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

См. head_length, head_angle и head_type.

Графическая опция: head_length

Значение по умолчанию: 2

head_length задает длину наконечника стрелок в единицах оси x.

Эта опция влияет только на объекты типа vector.

Пример:

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

См. head_both, head_angle и head_type.

Графическая опция: head_angle

Значение по умолчанию: 45

head_angle задает угол в градусах между стронами наконечника стрелки и ее осью.

Эта опция влияет только на объекты типа vector.

Пример:

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

См. head_both, head_length и head_type.

Графическая опция: head_type

Значение по умолчанию: filled

head_type задает способ изображения наконечника стрелок. Возможны значения: filled (замкнутые и заполненные наконечники), empty (замкнутые и пустые наконечники) и nofilled (открытые наконечники).

Эта опция влияет только на объекты типа vector.

Пример:

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

См. head_both, head_angle и head_length.

Графическая опция: unit_vectors

Значение по умолчанию: false

Если unit_vectors равно true, все вектора изображаются с единичной длиной. Это полезно при изображении векторных полей. Если unit_vectors равно false, то вектора изображаются с их настоящей длиной.

Эта опция влияет только на объекты типа vector.

Пример:

(%i1) load("draw")$
(%i2) draw2d(xrange      = [-1,6],
             yrange      = [-1,6],
             head_length = 0.1,
             vector([0,0],[5,2]),
             unit_vectors = true,
             color        = red,
             vector([0,3],[5,2]))$
Графическая опция: label_alignment

Значение по умолчанию: center

label_alignment определяет положение меток, по отношению к заданным координатам. Возможны значения: center, left и right.

Эта опция влияет только на объекты типа label.

Пример:

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

См. label_orientation и color.

Графическая опция: label_orientation

Значение по умолчанию: horizontal

label_orientation определяет ориентацию меток. Возможны значения: horizontal и vertical.

Эта опция влияет только на объекты типа label.

Пример:

В этом примере к изображению добавлена фиктивная точка. Пакет draw требует непустые данные, чтобы изобразить сцену.

(%i1) load("draw")$
(%i2) draw2d(xrange     = [0,10],
             yrange     = [0,10],
             point_size = 0,
             points([[5,5]]),
             color      = navy,
             label(["Horizontal orientation (default)",5,2]),
             label_orientation = 'vertical,
             color             = "#654321",
             label(["Vertical orientation",1,5]))$

См. label_alignment и color.

Графическая опция: color

Значение по умолчанию: "black"

color задает цвет линий, точек, границ многоугольников и меток.

Цвет может быть задан как наименование или как шестнадцатиричный rgb код.

Доступны следующие наименования цветов: "white", "black", "gray0", "grey0", "gray10", "grey10", "gray20", "grey20", "gray30", "grey30", "gray40", "grey40", "gray50", "grey50", "gray60", "grey60", "gray70", "grey70", "gray80", "grey80", "gray90", "grey90", "gray100", "grey100", "gray", "grey", "light-gray", "light-grey", "dark-gray", "dark-grey", "red", "light-red", "dark-red", "yellow", "light-yellow", "dark-yellow", "green", "light-green", "dark-green", "spring-green", "forest-green", "sea-green", "blue", "light-blue", "dark-blue", "midnight-blue", "navy", "medium-blue", "royalblue", "skyblue", "cyan", "light-cyan", "dark-cyan", "magenta", "light-magenta", "dark-magenta", "turquoise", "light-turquoise", "dark-turquoise", "pink", "light-pink", "dark-pink", "coral", "light-coral", "orange-red", "salmon", "light-salmon", "dark-salmon", "aquamarine", "khaki", "dark-khaki", "goldenrod", "light-goldenrod", "dark-goldenrod", "gold", "beige", "brown", "orange", "dark-orange", "violet", "dark-violet", "plum" и "purple".

Цветовые компоненты в шестнадцатиричном коде представляются в форме "#rrggbb".

Пример:

(%i1) load("draw")$
(%i2) draw2d(explicit(x^2,x,-1,1), /* default is black */
             color = "red",
             explicit(0.5 + x^2,x,-1,1),
             color = blue,
             explicit(1 + x^2,x,-1,1),
             color = "light-blue", /* double quotes if - is used */
             explicit(1.5 + x^2,x,-1,1),
             color = "#23ab0f",
             label(["This is a label",0,1.2])  )$

См. fill_color.

Графическая опция: fill_color

Значение по умолчанию: "red"

fill_color определяет цвет для заполнения многоугольников и двумерных explicit функций.

См. color для способа задания цвета.

Графическая опция: fill_density

Значение по умолчанию: 0

fill_density – число от 0 до 1, которое задает интенсивность цвета fill_color в объектах bars.

См. bars для примеров.

Графическая опция: line_width

Значение по умолчанию: 1

line_width – ширина изображаемых линий. Значение должно быть положительным числом.

Эта опция влияет на следующие графические объекты:

Пример:

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

См. line_type.

Графическая опция: line_type

Значение по умолчанию: solid

line_type – задает стиль изображения линий. Возможные значения: solid и dots.

Эта опция влияет на следующие графические объекты:

Пример:

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

См. line_width.

Графическая опция: nticks

Значение по умолчанию: 30

nticks – число пробных точек, используемых в графических процедурах.

Эта опция влияет на следующие графические объекты:

Пример:

(%i1) load("draw")$
(%i2) draw2d(transparent = true,
             ellipse(0,0,4,2,0,180),
             nticks = 5,
             ellipse(0,0,4,2,180,180) )$
Графическая опция: adapt_depth

Значение по умолчанию: 10

adapt_depth – максимальное число разбиений, используемое в адаптивных графиках.

Эта опция влияет только на двумерные explicit функции.

Графическая опция: key

Значение по умолчанию: "" (пустая строка)

key – наименование функции в легенде. Если key – пустая строка, то ничего не изображается.

Эта опция влияет на следующие графические объекты:

Пример:

(%i1) load("draw")$
(%i2) draw2d(key   = "Sinus",
             explicit(sin(x),x,0,10),
             key   = "Cosinus",
             color = red,
             explicit(cos(x),x,0,10) )$
Графическая опция: xu_grid

Значение по умолчанию: 30

xu_grid – число координат первой переменной (x в явной и u в параметрической трехмерной поверхности) для построения сетки пробных точек.

Эта опция влияет на следующие графические объекты:

Пример:

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

См. yv_grid.

Графическая опция: yv_grid

Значение по умолчанию: 30

yv_grid – число координат второй переменной (y в явной и v в параметрической трехмерной поверхности) для построения сетки пробных точек.

Эта опция влияет на следующие графические объекты:

Пример:

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

См. xu_grid.

Графическая опция: surface_hide

Значение по умолчанию: false

Если surface_hide равно true, то скрытые части на трехмерных поверхностях не изображаются.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

(%i1) load("draw")$
(%i2) draw(columns=2,
           gr3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3)),
           gr3d(surface_hide = true,
                explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3)) )$
Графическая опция: contour

Значение по умолчанию: none

Опция contour позволяет пользователю выбрать, где изображать контурные линии. Доступны следующие значения:

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Пример:

(%i1) load("draw")$
(%i2) draw3d(explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
             contour_levels = 15,
             contour        = both,
             surface_hide   = true) $
Графическая опция: contour_levels

Значение по умолчанию: 5

Эта опция управляет способом изображения контуров. contour_levels может иметь значение в виде положительного целого числа, списка трех чисел или произвольного набора чисел:

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.

Примеры:

Контурные линии, расположенные на равном расстоянии. Число уровней можно настраивать.

(%i1) load("draw")$
(%i2) draw3d(color = green,
             explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
             contour_levels = 10,
             contour        = both,
             surface_hide   = true) $

Контурные линии от -8 до 8 с шагом 4.

(%i1) load("draw")$
(%i2) draw3d(color = green,
             explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
             contour_levels = [-8,4,8],
             contour        = both,
             surface_hide   = true) $

Контурные линии на уровне -7, -6, 0.8 и 5.

(%i1) load("draw")$
(%i2) draw3d(color = green,
             explicit(20*exp(-x^2-y^2)-10,x,0,2,y,-3,3),
             contour_levels = {-7, -6, 0.8, 5},
             contour        = both,
             surface_hide   = true) $

См. contour.

Графическая опция: columns

Значение по умолчанию: 1

columns число колонок в множественных графиках.

Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения. Она также может использоваться как аргумент функции draw.

Пример:

(%i1) load("draw")$
(%i2) scene1: gr2d(title="Ellipse",
                   nticks=30,
                   parametric(2*cos(t),5*sin(t),t,0,2*%pi))$
(%i3) scene2: gr2d(title="Triangle",
                   polygon([4,5,7],[6,4,2]))$
(%i4) draw(scene1, scene2, columns = 2)$
Графическая опция: ip_grid

Значение по умолчанию: [50, 50]

ip_grid задает решетку для первой пробной выборки для неявных графиков.

Эта опция влияет только на объекты типа implicit.

Графическая опция: ip_grid_in

Значение по умолчанию: [5, 5]

ip_grid_in задает решетку для второй пробной выборки для неявных графиков.

Эта опция влияет только на объекты типа implicit.

Графическая опция: x_voxel

Значение по умолчанию: 10

x_voxel есть число вокселей в направлении x, используемых в алгоритме марширующих кубов, реализованном лоя трехмерных implicit объектов.

Графическая опция: y_voxel

Значение по умолчанию: 10

y_voxel есть число вокселей в направлении y, используемых в алгоритме марширующих кубов, реализованном лоя трехмерных implicit объектов.

Графическая опция: z_voxel

Значение по умолчанию: 10

z_voxel есть число вокселей в направлении z, используемых в алгоритме марширующих кубов, реализованном лоя трехмерных implicit объектов.

Конструктор сцены: gr2d (графическая опция, ..., графический объект, ...)

Функция gr2d строит объект, который описывает двумерную сцену. Аргументы есть графические опции и графические объекты. Эта сцена интерпретируется последовательно: графические опции влияет на графические объекты, расположенные справа от них. Некоторые графические опции глобально влияют на вид сцены.

Это список графических объектов, доступных для сцены в двух измерениях: points, polygon, rectangle, bars, ellipse, label, vector, explicit, implicit, polar, parametric, image и geomap.

См. следующие глобальные графические опции: xrange, yrange, logx, logy, terminal, grid, title, xlabel, ylabel, xtics, ytics, xtics_rotate, ytics_rotate, xtics_axis, ytics_axis, xaxis, yaxis, xaxis_width, yaxis_width, xaxis_type, yaxis_type, xaxis_color, yaxis_color, xy_file, file_name, pic_width, pic_height, eps_width, eps_height, user_preamble, axis_bottom, axis_left, axis_top и axis_right.

Для того, чтобы использовать эту функцию, ее следует загрузить командой load("draw").

Конструктор сцены: gr3d (графическая опция, ..., графический объект, ...)

Функция gr3d строит объект, который описывает трехмерную сцену. Аргументы есть графические опции и графические объекты. Эта сцена интерпретируется последовательно: графические опции влияет на графические объекты, неположенные справа от них. Некоторые графические опции глобально влияют на вид сцены.

Это список графических объектов, доступных для сцены в трех измерениях: points, label, vector, explicit, implicit, parametric, parametric_surface и geomap.

См. следующие графические опции: xrange, yrange, zrange, logx, logy, logz, terminal, grid, title, xlabel, ylabel, zlabel, xtics, ytics, ztics, xtics_rotate, ytics_rotate, ztics_rotate, xtics_axis, ytics_axis, ztics_axis, xaxis, yaxis, zaxis, xaxis_width, yaxis_width, zaxis_width, xaxis_type, yaxis_type, zaxis_type, xaxis_color, yaxis_color, zaxis_color, xy_file, user_preamble, axis_bottom, axis_left, axis_top, file_name, pic_width, pic_height, eps_width, eps_height, axis_right, rot_vertical, rot_horizontal, axis_3d, xu_grid, yv_grid, surface_hide, contour, contour_levels, palette, colorbox и enhanced3d.

Для того, чтобы использовать эту функцию, ее следует загрузить командой load("draw").

Графический объект: points ([[x1,y1], [x2,y2],...])
Графический объект: points ([x1,x2,...], [y1,y2,...])
Графический объект: points ([y1,y2,...])
Графический объект: points ([[x1,y1,z1], [x2,y2,z2],...])
Графический объект: points ([x1,x2,...], [y1,y2,...], [z1,z2,...])
Графический объект: points (matrix)

Строит точки в двух и трех измерениях.

Следующие графические опции влияют на этот объект: point_size, point_type, points_joined, line_width, key, line_type и color.

Два измерения

points ([[x1,y1], [x2,y2],...]) или points ([x1,x2,...], [y1,y2,...]) строит точки с координатами [x1,y1], [x2,y2], и т.д. Если абсциссы не заданы, то они принимаются равными последовательным положительным числам, так что points ([y1,y2,...]) строит точки [1,y1], [2,y2], и т.д. Если matrix – матрица из двух строк или столбцов, то points (matrix) строит соответствующие точки. Если matrix – матрица из одной строки или одного столбца, то абсциссы выбираются автоматически.

Пример:

(%i1) load("draw")$
(%i2) draw2d(
        key = "Small points",
        points(makelist([random(20),random(50)],k,1,10)),
        point_type    = circle,
        point_size    = 3,
        points_joined = true,
        key           = "Great points",
        points(makelist(k,k,1,20),makelist(random(30),k,1,20)),
        point_type    = filled_down_triangle,
        key           = "Automatic abscissas",
        color         = red,
        points([2,12,8]))$

Три измерения

points ([[x1,y1,z1], [x2,y2,z2],...]) или points ([x1,x2,...], [y1,y2,...], [z1,z2,...]) строит точки с координатами [x1,y1,z1], [x2,y2,z2], и т.д. Если matrix – матрица из трех строк или трех столбцов, то points (matrix) строит соответствующие точки.

Примеры:

Одна трехмерная выборка:

(%i1) load("draw")$
(%i2) load ("numericalio")$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) draw3d(title = "Daily average wind speeds",
             point_size = 2,
             points(args(submatrix (s2, 4, 5))) )$

Две трехмерные выборки:

(%i1) load("draw")$
(%i2) load ("numericalio")$
(%i3) s2 : read_matrix (file_search ("wind.data"))$
(%i4) draw3d(
         title = "Daily average wind speeds. Two data sets",
         point_size = 2,
         key        = "Sample from stations 1, 2 and 3",
         points(args(submatrix (s2, 4, 5))),
         point_type = 4,
         key        = "Sample from stations 1, 4 and 5",
         points(args(submatrix (s2, 2, 3))) )$
Графический объект: polygon ([[x1,y1], [x2,y2],...])
Графический объект: polygon ([x1,x2,...], [y1,y2,...])

Строит многоугольник в двух измерениях.

Два измерения

polygon ([[x1,y1], [x2,y2],...]) или polygon ([x1,x2,...], [y1,y2,...]): строит на плоскости многоугольник с вершинами [x1,y1], [x2,y2], и т.д.

Следующие графические опции влияют на этот объект: transparent, fill_color, border, line_width, key, line_type и color.

Пример:

(%i1) load("draw")$
(%i2) draw2d(color      = "#e245f0",
             line_width = 8,
             polygon([[3,2],[7,2],[5,5]]),
             border      = false,
             fill_color  = yellow,
             polygon([[5,2],[9,2],[7,5]]) )$
Графический объект: rectangle ([x1,y1], [x2,y2])

Строит прямоугольники в двух измерениях.

Два измерения

rectangle ([x1,y1], [x2,y2]) строит прямоугольник с противоположными вершинами [x1,y1] и [x2,y2].

Следующие графические опции влияют на этот объект: transparent, fill_color, border, line_width, key, line_type и color.

Пример:

(%i1) load("draw")$
(%i2) draw2d(fill_color  = red,
             line_width  = 6,
             line_type   = dots,
             transparent = false,
             fill_color  = blue,
             rectangle([-2,-2],[8,-1]), /* opposite vertices */
             transparent = true,
             line_type   = solid,
             line_width  = 1,
             rectangle([9,4],[2,-1.5]),
             xrange      = [-3,10],
             yrange      = [-3,4.5] )$
Графический объект: bars ([x1,h1,w1], [x2,h2,w2, ...])

Строит вертикальные полоски в двух измерениях.

Два измерения

bars ([x1,h1,w1], [x2,h2,w2, ...]) Строит полоски с центрами на x1, x2, ... с высотами h1, h2, ... и ширинами w1, w2, ...

Следующие графические опции влияют на этот объект: key, fill_color, fill_density и line_width.

Пример:

(%i1) load("draw")$
(%i2) draw2d(
       key          = "Group A",
       fill_color   = blue,
       fill_density = 0.2,
       bars([0.8,5,0.4],[1.8,7,0.4],[2.8,-4,0.4]),
       key          = "Group B",
       fill_color   = red,
       fill_density = 0.6,
       line_width   = 4,
       bars([1.2,4,0.4],[2.2,-2,0.4],[3.2,5,0.4]),
       xaxis = true);
Графический объект: ellipse (xc, yc, a, b, ang1, ang2)

Строит эллипсы и круги в двух измерениях.

Два измерения

ellipse (xc, yc, a, b, ang1, ang2) строит эллипс с центром в [xc, yc] с горизонтальной и вертикальной полу-осями a и b соответственно от угла ang1 до угла ang2.

Следующие графические опции влияют на этот объект: nticks, transparent, fill_color, border, line_width, line_type, key и color.

Пример:

(%i1) load("draw")$
(%i2) draw2d(transparent = false,
             fill_color  = red,
             color       = gray30,
             transparent = false,
             line_width  = 5,
             ellipse(0,6,3,2,270,-270),
             /* center (x,y), a, b, start & end in degrees */
             transparent = true,
             color       = blue,
             line_width  = 3,
             ellipse(2.5,6,2,3,30,-90),
             xrange      = [-3,6],
             yrange      = [2,9] )$
Графический объект: label ([string,x,y],...)
Графический объект: label ([string,x,y,z],...)

Изображает текстовую метку в двух или трех измерениях.

Следующие графические опции влияют на этот объект: label_alignment, label_orientation и color.

Два измерения

label([string,x,y]) изображает текст string в точке [x,y].

Пример:

(%i1) load("draw")$
(%i2) draw2d(yrange = [0.1,1.4],
             color = "red",
             label(["Label in red",0,0.3]),
             color = "#0000ff",
             label(["Label in blue",0,0.6]),
             color = "light-blue",
             label(["Label in light-blue",0,0.9],
                   ["Another ligght-blue",0,1.2])  )$

Три измерения

label([string,x,y,z]) изображает текст string в точке [x,y,z].

Пример:

(%i1) load("draw")$
(%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3),
             color = red,
             label(["UP 1",-2,0,3], ["UP 2",1.5,0,4]),
             color = blue,
             label(["DOWN 1",2,0,-3]) )$
Графический объект: vector ([x,y], [dx,dy])
Графический объект: vector ([x,y,z], [dx,dy,dz])

Строит вектор в двух или трех измерениях.

Следующие графические опции влияют на этот объект: head_both, head_length, head_angle, head_type, line_width, line_type, key и color.

Два измерения

vector([x,y], [dx,dy]) строит вектор [dx,dy] с началом в точке [x,y].

Пример:

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

Три измерения

vector([x,y,z], [dx,dy,dz]) строит вектор [dx,dy,dz] с началом в точке [x,y,z].

Пример:

(%i1) load("draw")$
(%i2) draw3d(color = cyan,
             vector([0,0,0],[1,1,1]/sqrt(3)),
             vector([0,0,0],[1,-1,0]/sqrt(2)),
             vector([0,0,0],[1,1,-2]/sqrt(6)) )$
Графический объект: explicit (fcn,var,minval,maxval)
Графический объект: explicit (fcn,var1,minval1,maxval1,var2,minval2,maxval2)

Строит явную функцию в двух или трех измерениях.

Два измерения

explicit(fcn,var,minval,maxval) строит явную функцию fcn переменной var, принимающей значения от minval до maxval.

Следующие графические опции влияют на этот объект: nticks, adapt_depth, line_width, line_type, key, filled_func, fill_color и color.

Пример:

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

Три измерения

explicit(fcn,var1,minval1,maxval1,var2,minval2,maxval2) строит явную функцию fcn переменной var1 в пределах от minval1 до maxval1, и переменной var2 в пределах от minval2 до maxval2.

Следующие графические опции влияют на этот объект: xu_grid, yv_grid, line_type, key и color.

Пример:

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

См. filled_func по поводу функций с заполнением.

Графический объект: implicit (fcn,x,xmin,xmax,y,ymin,ymax)
Графический объект: implicit (fcn,x,xmin,xmax,y,ymin,ymax,z,zmin,zmax)

Строит неявную функцию в двух и трех измерениях.

Два измерения

implicit(fcn,x,xmin,xmax,y,ymin,ymax) строит неявную функцию, определенную fcn с переменной x, принимающей значения от xmin до xmax, и переменной y, принимающей значения от ymin до ymax.

Следующие графические опции влияют на этот объект: ip_grid, ip_grid_in, line_width, line_type, key и color.

Пример:

(%i1) load("draw")$
(%i2) draw2d(terminal  = eps,
             grid      = true,
             line_type = solid,
             key       = "y^2=x^3-2*x+1",
             implicit(y^2=x^3-2*x+1, x, -4,4, y, -4,4),
             line_type = dots,
             key       = "x^3+y^3 = 3*x*y^2-x-1",
             implicit(x^3+y^3 = 3*x*y^2-x-1, x,-4,4, y,-4,4),
             title     = "Two implicit functions" )$

Три измерения

implicit (fcn,x,xmin,xmax, y,ymin,ymax, z,zmin,zmax) строит неявную поверхность, определенную fcn, с переменной x, принимающей значения от xmin до xmax, переменной y, принимающей значения от ymin до ymax и переменной z, принимающей значения от zmin до zmax. Для построения используется алгоритм марширующих кубов.

Следующие графические опции влияют на этот объект: x_voxel, y_voxel, z_voxel, line_width, line_type, key и color.

Пример:

(%i1) load("draw")$
(%i2) draw3d(
        color=blue,
        implicit((x^2+y^2+z^2-1)*(x^2+(y-1.5)^2+z^2-0.5)=0.015,
                 x,-1,1,y,-1.2,2.3,z,-1,1),
        surface_hide=true);
Графический объект: polar (radius,ang,minang,maxang)

Строит двумерную функцию в полярных координатах.

Два измерения

polar (radius,ang,minang,maxang) изображает функцию radius(ang) в полярных координатах переменной ang в пределах от minang до maxang.

Следующие графические опции влияют на этот объект: nticks, line_width, line_type, key и color.

Пример:

(%i1) load("draw")$
(%i2) draw2d(user_preamble = "set grid polar",
             nticks        = 200,
             xrange        = [-5,5],
             yrange        = [-5,5],
             color         = blue,
             line_width    = 3,
             title         = "Hyperbolic Spiral",
             polar(10/theta,theta,1,10*%pi) )$
Графический объект: spherical (radius,azi,minazi,maxazi,zen,minzen,maxzen)

Строит трехмерную функцию в сферических координатах.

Три измерения

spherical (radius,azi,minazi,maxazi,zen,minzen,maxzen) строит функцию radius(azi,zen) в сферических координатах с азимутом azi в пределах от minazi до maxazi и возвышением zen в пределах от minzen до maxzen.

Следующие графические опции влияют на этот объект: xu_grid, yv_grid, line_type, key и color.

Пример:

(%i1) load("draw")$
(%i2) draw3d(spherical(1,a,0,2*%pi,z,0,%pi))$
Графический объект: cylindrical (radius,z,minz,maxz,azi,minazi,maxazi)

Строит трехмерную функцию в цилиндрических координатах.

Три измерения

cylindrical (radius,z,minz,maxz,azi,minazi,maxazi) строит функцию radius(z,azi) в цилиндрических координатах с z в пределах от minz до maxz и азимутом azi в пределах от minazi до maxazi.

Следующие графические опции влияют на этот объект: xu_grid, yv_grid, line_type, key и color.

Пример:

(%i1) load("draw")$
(%i2) draw3d(cylindrical(1,z,-2,2,az,0,2*%pi))$
Графический объект: parametric (xfun,yfun,par,parmin,parmax)
Графический объект: parametric (xfun,yfun,zfun,par,parmin,parmax)

Строит параметрическую функцию в двух и трех переменных.

Следующие графические опции влияют на этот объект: nticks, line_width, line_type, key и color.

Два измерения

parametric (xfun,yfun,par,parmin,parmax) строит параметрическую функцию [xfun,yfun] с параметром par, принимающим значения от parmin до parmax.

Пример:

(%i1) load("draw")$
(%i2) draw2d(explicit(exp(x),x,-1,3),
             color = red,
             key   = "This is the parametric one!!",
             parametric(2*cos(rrr),rrr^2,rrr,0,2*%pi))$

Три измерения

parametric (xfun,yfun,zfun,par,parmin,parmax) строит параметрическую кривую [xfun,yfun,zfun] с параметром par, принимающем значения от parmin до parmax.

Пример:

(%i1) load("draw")$
(%i2) draw3d(explicit(exp(sin(x)+cos(x^2)),x,-3,3,y,-3,3),
             color = royalblue,
             parametric(cos(5*u)^2,sin(7*u),u-2,u,0,2),
             color      = turquoise,
             line_width = 2,
             parametric(t^2,sin(t),2+t,t,0,2),
             surface_hide = true,
             title = "Surface & curves" )$
Графический объект: image (im,x0,y0,width,height)

Строит в двух измерениях.

Два измерения

image (im,x0,y0,width,height) строит изображение im в прямоугольной области от угла (x0,y0) до (x0+width,y0+height) на вещественной плоскости. Параметр im должен быть матрицей вещественных чисел, или матрицей векторов длины 3, или объект типа картина.

Если im – матрица вещественных чисел или объект картина уровней, то значения пикселов интерпретируются в соответствии с графической опцией palette, которая является вектором длины 3 с компонентами, принимающими значение от -36 до +36. Каждое значение является индексом формулы, преобразующей значение уровня в красный, зеленый и синий цвета соответственно:

 0: 0               1: 0.5           2: 1
 3: x               4: x^2           5: x^3
 6: x^4             7: sqrt(x)       8: sqrt(sqrt(x))
 9: sin(90x)       10: cos(90x)     11: |x-0.5|
12: (2x-1)^2       13: sin(180x)    14: |cos(180x)|
15: sin(360x)      16: cos(360x)    17: |sin(360x)|
18: |cos(360x)|    19: |sin(720x)|  20: |cos(720x)|
21: 3x             22: 3x-1         23: 3x-2
24: |3x-1|         25: |3x-2|       26: (3x-1)/2
27: (3x-2)/2       28: |(3x-1)/2|   29: |(3x-2)/2|
30: x/0.32-0.78125                  31: 2*x-0.84
32: 4x;1;-2x+1.84;x/0.08-11.5
33: |2*x - 0.5|    34: 2*x          35: 2*x - 0.5
36: 2*x - 1

Отрицательные числа означают отрицательные цветовые компоненты.

palette = gray и palette = color являются сокращениями для palette = [3,3,3] и palette = [7,5,15] соответственно.

Если im – матрица векторов длины 3 или объект rgb-картина, то они интерпретируются как красный, зеленый и синий цвета.

Примеры:

Если im – матрица вещественных чисел или объект картина уровней, то значения пикселов интерпретируются в соответствии с графической опцией palette.

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

См. colorbox.

Если im – матрица векторов длины 3 или объект rgb-картина, то они интерпретируются как красный, зеленый и синий цвета.

(%i1) load("draw")$
(%i2) im: apply(
            'matrix,
             makelist(
               makelist([random(300),
                         random(300),
                         random(300)],i,1,30),i,1,30))$
(%i3) draw2d(image(im,0,0,30,30))$

Пакет draw автоматически загружает пакет picture. В данном примере, объект типа картина уровней строится вручную и потом изображается.

(%i1) load("draw")$
(%i2) im: make_level_picture([45,87,2,134,204,16],3,2);
(%o2)       picture(level, 3, 2, {Array:  #(45 87 2 134 204 16)})
(%i3) /* default color palette */
      draw2d(image(im,0,0,30,30))$
(%i4) /* gray palette */
      draw2d(palette = gray,
             image(im,0,0,30,30))$

Файл xpm читается и изображается.

(%i1) load("draw")$
(%i2) im: read_xpm("myfile.xpm")$
(%i3) draw2d(image(im,0,0,10,7))$

См. make_level_picture, make_rgb_picture и read_xpm.

По ссылке URL http://www.telefonica.net/web2/biomates/maxima/gpdraw/image находятся более развернутые примеры.

Глобальная переменная: boundaries_array

Значение по умолчанию: false

boundaries_array – это массив, в котором графический объект geomap ищет координаты границ.

Каждая компонента boundaries_array есть массив чисел с плавающей точкой – координат многоугольного сегмента или границы карты.

См. geomap.

Графический объект: geomap (numlist)
Графический объект: geomap (numlist,3Dprojection)

Строит карты в двух и трех измерениях.

Два измерения

Эта функция работает вместе с глобальной переменной boundaries_array.

Аргумент numlist – список, содержащий числа или списки чисел. Все числа должны быть неотрицательными целыми, которые представляют компоненты глобального массива boundaries_array.

Каждая компонента boundaries_array есть массив чисел с плавающей точкой – координат многоугольного сегмента или границы карты.

Функция geomap (numlist) проецирует свои аргументы на плоскость и строит соответствующую границу из boundaries_array.

Следующие графические опции влияют на этот объект: line_width, line_type и color.

Примеры:

Простая карта, определенная вручную:

(%i1) load("draw")$
(%i2) /* Vertices of boundary #0: {(1,1),(2,5),(4,3)} */
   ( bnd0: make_array(flonum,6),
     bnd0[0]:1.0, bnd0[1]:1.0, bnd0[2]:2.0,
     bnd0[3]:5.0, bnd0[4]:4.0, bnd0[5]:3.0 )$
(%i3) /* Vertices of boundary #1: {(4,3),(5,4),(6,4),(5,1)} */
   ( bnd1: make_array(flonum,8),
     bnd1[0]:4.0, bnd1[1]:3.0, bnd1[2]:5.0, bnd1[3]:4.0,
     bnd1[4]:6.0, bnd1[5]:4.0, bnd1[6]:5.0, bnd1[7]:1.0)$
(%i4) /* Vertices of boundary #2: {(5,1), (3,0), (1,1)} */
   ( bnd2: make_array(flonum,6),
     bnd2[0]:5.0, bnd2[1]:1.0, bnd2[2]:3.0,
     bnd2[3]:0.0, bnd2[4]:1.0, bnd2[5]:1.0 )$
(%i5) /* Vertices of boundary #3: {(1,1), (4,3)} */
   ( bnd3: make_array(flonum,4),
     bnd3[0]:1.0, bnd3[1]:1.0, bnd3[2]:4.0, bnd3[3]:3.0)$
(%i6) /* Vertices of boundary #4: {(4,3), (5,1)} */
   ( bnd4: make_array(flonum,4),
     bnd4[0]:4.0, bnd4[1]:3.0, bnd4[2]:5.0, bnd4[3]:1.0)$
(%i7) /* Pack all together in boundaries_array */
   ( boundaries_array: make_array(any,5),
     boundaries_array[0]: bnd0, boundaries_array[1]: bnd1,
     boundaries_array[2]: bnd2, boundaries_array[3]: bnd3,
     boundaries_array[4]: bnd4 )$
(%i8) draw2d(geomap([0,1,2,3,4]))$

Вспомогательный пакет worldmap заносит в boundaries_array реальные границы (долгота, широта). Эти данные публично доступны и получены из http://www-cger.nies.go.jp/grid-e/gridtxt/grid19.html. Пакет worldmap также определяет границы стран, континентов и береговых линий в форме списков с необходимыми компонентами boundaries_array (см. файл share/draw/worldmap.mac для дальнейшей информации). Пакет draw не загружает автоматически пакет worldmap.

(%i1) load("draw")$
(%i2) load("worldmap")$
(%i3) c1: gr2d(geomap(Canada,United_States,
                      Mexico,Cuba))$
(%i4) c2: gr2d(geomap(Africa))$
(%i5) c3: gr2d(geomap(Oceania,China,Japan))$
(%i6) c4: gr2d(geomap(France,Portugal,Spain,
                      Morocco,Western_Sahara))$
(%i7) draw(columns  = 2,
           c1,c2,c3,c4)$

Пакет worldmap также полезен для изображения стран в виде многоугольников. В этом случае графический объект geomap не нужен и вместо его используется объект polygon. Т.к. в этом случае используются списки а не массивы, то изображение карт будет мудреннее. См. make_poly_country и make_poly_continent, чтобы понять следующий код.

(%i1) load("draw")$
(%i2) load("worldmap")$
(%i3) mymap: append(
   [color      = white],  /* borders are white */
   [fill_color = red],             make_poly_country(Bolivia),
   [fill_color = cyan],            make_poly_country(Paraguay),
   [fill_color = green],           make_poly_country(Colombia),
   [fill_color = blue],            make_poly_country(Chile),
   [fill_color = "#23ab0f"],       make_poly_country(Brazil),
   [fill_color = goldenrod],       make_poly_country(Argentina),
   [fill_color = "midnight-blue"], make_poly_country(Uruguay))$
(%i4) apply(draw2d, mymap)$

Три измерения

geomap (numlist) проецирует границы карты на сферу единичного радиуса с центром (0,0,0). Сферу и тип проекции можно изменить при помощи geomap (numlist,3Dprojection).

Доступны следующие трехмерные проекции:

См. http://www.telefonica.net/web2/biomates/maxima/gpdraw/geomap для более сложных примеров.

Графический объект: parametric_surface (xfun,yfun,zfun,par1,par1min,par1max,par2,par2min,par2max)

Строит параметрическую поверхность в трех измерениях.

Три измерения

parametric_surface (xfun,yfun,zfun,par1,par1min,par1max,par2,par2min,par2max) строит параметрическую поверхность [xfun,yfun,zfun], с параметром par1, принимающем значения от par1min до par1max и параметром par2, принимающем значения от par2min до par2max.

Следующие графические опции влияют на этот объект: xu_grid, yv_grid, line_type, key и color.

Пример:

(%i1) load("draw")$
(%i2) draw3d(title          = "Sea shell",
             xu_grid        = 100,
             yv_grid        = 25,
             rot_vertical   = 100,
             rot_horizontal = 20,
             surface_hide   = true,
             parametric_surface(0.5*u*cos(u)*(cos(v)+1),
                           0.5*u*sin(u)*(cos(v)+1),
                           u*sin(v) - ((u+3)/8*%pi)^2 - 20,
                           u, 0, 13*%pi, v, -%pi, %pi) )$
Функция: draw (gr2d, ..., gr3d, ..., options, ...)

Изображает серию графических сцен. Ее аргументы есть gr2d и/или gr3d графические объекты вместе с некоторыми опциями. По умолчанию сцены собираются вместе в одну колонку.

Функция draw принимает следующие глобальные опции: terminal, columns, pic_width, pic_height, eps_width, eps_height, file_name и delay.

Функции draw2d и draw3d – сокращения, которые используются, когда требуется изобразить только одну сцену в двух или трех измерениях соответственно.

Для того, чтобы использовать эту функцию, ее следует загрузить командой load("draw").

Пример:

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

Эти две команды эквивалентны:

(%i1) load("draw")$
(%i2) draw(gr3d(explicit(x^2+y^2,x,-1,1,y,-1,1)));
(%o2)                          [gr3d(explicit)]
(%i3) draw3d(explicit(x^2+y^2,x,-1,1,y,-1,1));
(%o3)                          [gr3d(explicit)]

Анимированный файл gif:

(%i1) load("draw")$
(%i2) draw(
        delay     = 100,
        file_name = "zzz",
        terminal  = 'animated_gif,
        gr2d(explicit(x^2,x,-1,1)),
        gr2d(explicit(x^3,x,-1,1)),
        gr2d(explicit(x^4,x,-1,1)));
End of animation sequence
(%o2)          [gr2d(explicit), gr2d(explicit), gr2d(explicit)]

См. gr2d, gr3d, draw2d и draw3d.

Функция: draw2d (option, graphic_object, ...)

Эта функция является сокращением для draw(gr2d(options, ..., graphic_object, ...)).

Она может использоваться для изображения одиночной двумерной сцены.

Для того, чтобы использовать эту функцию, ее следует загрузить командой load("draw").

См. также draw и gr2d.

Функция: draw3d (option, graphic_object, ...)

Эта функция является сокращением для draw(gr3d(options, ..., graphic_object, ...)).

Она может использоваться для изображения одиночной трехмерной сцены.

Для того, чтобы использовать эту функцию, ее следует загрузить командой load("draw").

См. также draw и gr3d.


Next: , Previous: , Up: Пакет draw   [Contents][Index]

46.3 Функции и переменные для картин

Функция: make_level_picture (data)
Функция: make_level_picture (data,width,height)

Возвращает объект типа картина уровней. make_level_picture (data) строит объект картина из матрицы data. make_level_picture (data,width,height) строит объект из списка чисел; в этом случае должны быть заданы оба параметра width и height.

Возвращает объект типа картина, содержащий следующие четыре части:

  1. символ level
  2. ширина картины
  3. высота картины
  4. массив целых чисел в пределах от 0 до 255, описывающих пикселы. Аргумент data должен содержать только числа в пределах от 0 до 255; отрицательные числа заменяются 0, а те, что превышают 255, заменяются на 255.

Пример:

Картина уровней из матрицы.

(%i1) load("draw")$
(%i2) make_level_picture(matrix([3,2,5],[7,-9,3000]));
(%o2)         picture(level, 3, 2, {Array:  #(3 2 5 7 0 255)})

Картина уровней из числового списка.

(%i1) load("draw")$
(%i2) make_level_picture([-2,0,54,%pi],2,2);
(%o2)            picture(level, 2, 2, {Array:  #(0 0 54 3)})
Функция: picturep (x)

Возвращает true, если аргумент является правильно сформированной картиной, и false в противном случае.

Функция: picture_equalp (x,y)

Возвращает true, если картины совпадают, и false в противном случае.

Функция: make_rgb_picture (redlevel,greenlevel,bluelevel)

Возвращает rgb-цветную картину. Все три аргумента должны быть картинами уровней, с уровнями, задающими красный, зеленый и синий цвета соответственно.

Возвращаемый объект картина содержит следующие четыре части:

  1. символ rgb
  2. ширина картины
  3. высота картины
  4. целый массив длины 3*width*height с данными о пикселах со значениями от 0 до 255. Каждый пиксел представляется тремя последовательными числами (красный, зелены, синий).

Пример:

(%i1) load("draw")$
(%i2) red: make_level_picture(matrix([3,2],[7,260]));
(%o2)           picture(level, 2, 2, {Array:  #(3 2 7 255)})
(%i3) green: make_level_picture(matrix([54,23],[73,-9]));
(%o3)           picture(level, 2, 2, {Array:  #(54 23 73 0)})
(%i4) blue: make_level_picture(matrix([123,82],[45,32.5698]));
(%o4)          picture(level, 2, 2, {Array:  #(123 82 45 33)})
(%i5) make_rgb_picture(red,green,blue);
(%o5) picture(rgb, 2, 2, 
              {Array:  #(3 54 123 2 23 82 7 73 45 255 0 33)})
Функция: take_channel (im,color)

Если параметр color равен red, green или blue, то функция take_channel возвращает соответствующий цветовой канал картины im. Пример:

(%i1) load("draw")$
(%i2) red: make_level_picture(matrix([3,2],[7,260]));
(%o2)           picture(level, 2, 2, {Array:  #(3 2 7 255)})
(%i3) green: make_level_picture(matrix([54,23],[73,-9]));
(%o3)           picture(level, 2, 2, {Array:  #(54 23 73 0)})
(%i4) blue: make_level_picture(matrix([123,82],[45,32.5698]));
(%o4)          picture(level, 2, 2, {Array:  #(123 82 45 33)})
(%i5) make_rgb_picture(red,green,blue);
(%o5) picture(rgb, 2, 2, 
              {Array:  #(3 54 123 2 23 82 7 73 45 255 0 33)})
(%i6) take_channel(%,'green);  /* simple quote!!! */
(%o6)           picture(level, 2, 2, {Array:  #(54 23 73 0)})
Функция: negative_picture (pic)

Возвращает негатив картины (уровней или rgb).

Функция: rgb2level (pic)

Преобразует rgb картину в картину уровней усреднением красного, зеленого и синего каналов.

Функция: get_pixel (pic,x,y)

Возвращает пиксел из картины. Координаты x и y должны быть от 0 до width-1 и height-1 соответственно.

Функция: read_xpm (xpm_file)

Читает файл в формате xpm и возвращает объект типа картина.


Previous: , Up: Пакет draw   [Contents][Index]

46.4 Функции и переменные для карты мира

Функция: region_boundaries (x1,y1,x2,y2)

Определяет многоугольные сегменты из глобальной переменной boundaries_array, содержащиеся внутри прямоугольника с вершинами (x1,y1) (верхний левый) и (x2,y2) (нижний правый).

Пример:

Возвращает номера сегментов для северной Италии.

(%i1) load("draw")$
(%i2) load("worldmap")$
(%i3) region_boundaries(10.4,41.5,20.7,35.4);
(%o3)                [1846, 1863, 1864, 1881, 1888, 1894]
(%i4) draw2d(geomap(%))$
Функция: numbered_boundaries (nlist)

Строит многоугольные сегменты (границы), обозначаемые числами (координаты в boundaries_array). Эта функция очень полезна при создании географических объектов.

Пример:

Карта Европы, с границами, обозначенными номерами компонент в boundaries_array.

(%i1) load("draw")$
(%i2) load("worldmap")$
(%i3) european_borders: 
           region_boundaries(-31.81,74.92,49.84,32.06)$
(%i4) numbered_boundaries(european_borders)$
Функция: make_polygon (nlist)

Возвращает объект polygon, построенный из индексов границ. Аргумент nlist – список компонент в массиве boundaries_array.

Пример:

Бутан определяется номерами компонент 171, 173 и 1143, так что make_polygon([171,173,1143]) добавляет массив координат boundaries_array[171], boundaries_array[173] и boundaries_array[1143] и возвращает объект polygon, пригодный для изображения функцией draw. Для того чтобы избежать сообщений о ошибках, массивы должны быть совместимы в том смысле, что два последовательных массива имеют общие предельные координаты. В этом примере, две первые компоненты boundaries_array[171] равны двум последним компонентам boundaries_array[173], и две первые компоненты boundaries_array[173] равны двум первым компонентам boundaries_array[1143]. В целом, числа 171, 173 и 1143 (именно в этом порядке) совместимы и цветной многоугольник может быть построен.

(%i1) load("draw")$
(%i2) load("worldmap")$
(%i3) Bhutan;
(%o3)                        [[171, 173, 1143]]
(%i4) boundaries_array[171];
(%o4) {Array:  
       #(88.750549 27.14727 88.806351 27.25305 88.901367 27.282221
         88.917877 27.321039)}
(%i5) boundaries_array[173];
(%o5) {Array:
       #(91.659554 27.76511 91.6008 27.66666 91.598022 27.62499
         91.631348 27.536381 91.765533 27.45694 91.775253 27.4161 
         92.007751 27.471939 92.11441 27.28583 92.015259 27.168051
         92.015533 27.08083 92.083313 27.02277 92.112183 26.920271
         92.069977 26.86194 91.997192 26.85194 91.915253 26.893881
         91.916924 26.85416 91.8358 26.863331 91.712479 26.799999 
         91.542191 26.80444 91.492188 26.87472 91.418854 26.873329
         91.371353 26.800831 91.307457 26.778049 90.682457 26.77417
         90.392197 26.903601 90.344131 26.894159 90.143044 26.75333
         89.98996 26.73583 89.841919 26.70138 89.618301 26.72694 
         89.636093 26.771111 89.360786 26.859989 89.22081 26.81472
         89.110237 26.829161 88.921631 26.98777 88.873016 26.95499
         88.867737 27.080549 88.843307 27.108601 88.750549 
         27.14727)}
(%i6) boundaries_array[1143];
(%o6) {Array:  
       #(91.659554 27.76511 91.666924 27.88888 91.65831 27.94805 
         91.338028 28.05249 91.314972 28.096661 91.108856 27.971109
         91.015808 27.97777 90.896927 28.05055 90.382462 28.07972
         90.396088 28.23555 90.366074 28.257771 89.996353 28.32333
         89.83165 28.24888 89.58609 28.139999 89.35997 27.87166 
         89.225517 27.795 89.125793 27.56749 88.971077 27.47361
         88.917877 27.321039)}
(%i7) Bhutan_polygon: make_polygon([171,173,1143])$
(%i8) draw2d(Bhutan_polygon)$
Функция: make_poly_country (country_name)

Строит многоугольники, необходимые для изображения страны в цвете. Если есть острова, то страна определяется более чем одним многоугольником.

Пример:

(%i1) load("draw")$
(%i2) load("worldmap")$
(%i3) make_poly_country(India)$
(%i4) apply(draw2d, %)$
Функция: make_poly_continent (continent_name)
Функция: make_poly_continent (country_list)

Строит многоугольники, необходимые для изображение континента или списка стран в цвете.

Пример:

(%i1) load("draw")$
(%i2) load("worldmap")$
(%i3) /* A continent */
      make_poly_continent(Africa)$
(%i4) apply(draw2d, %)$
(%i5) /* A list of countries */
      make_poly_continent([Germany,Denmark,Poland])$
(%i6) apply(draw2d, %)$

Previous: , Up: Пакет draw   [Contents][Index]