Next: Пакет dynamics, Previous: Пакет distrib, Up: Top [Contents][Index]
| • Введение в пакет draw: | ||
| • Функции и переменные пакета draw: | ||
| • Функции и переменные для картин: | ||
| • Функции и переменные для карты мира: |
Next: Функции и переменные пакета draw, Previous: Пакет draw, Up: Пакет draw [Contents][Index]
draw является интерфейсом Maxima к программе Gnuplot.
На уровне Maxima есть три основные функции:
draw2d, draw3d и draw.
Более сложные примеры использования пакета можно найти по ссылке:
http://www.telefonica.net/web2/biomates/maxima/gpdraw
Для работы программы требуется Gnuplot 4.2.
Next: Функции и переменные для картин, Previous: Введение в пакет draw, Up: Пакет draw [Contents][Index]
Значение по умолчанию: auto
Если xrange равно auto, то диапазон координаты x вычисляется автоматически.
Если требуется определенный интервал x, он должен быть задан в форме списка,
например xrange=[-2, 3].
Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
Пример:
(%i1) load("draw")$
(%i2) draw2d(xrange = [-3,5],
explicit(x^2,x,-1,1))$
См. yrange и zrange.
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: false
Если logx равно true, то ось x будет изображаться в логарифмической шкале.
Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
Пример:
(%i1) load("draw")$
(%i2) draw2d(explicit(log(x),x,0.01,5),
logx = true)$
См. logy и logz.
Значение по умолчанию: false
Если logy равно true, то ось y будет изображаться в логарифмической шкале.
Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
Пример:
(%i1) load("draw")$
(%i2) draw2d(logy = true,
explicit(exp(x),x,0,5))$
См. logx и 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.
Значение по умолчанию: 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.
Значение по умолчанию: false
Если grid равно true, то на плоскости xy будет изображена сетка.
Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
Пример:
(%i1) load("draw")$
(%i2) draw2d(grid = true,
explicit(exp(u),u,-2,2))$
Значение по умолчанию: "" (пустая строка)
Опция title – строка, содержащая основной заголовок сцены.
По умолчанию заголовок отсутствует.
Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
Пример:
(%i1) load("draw")$
(%i2) draw2d(explicit(exp(u),u,-2,2),
title = "Exponential function")$
Значение по умолчанию: "" (пустая строка)
Опция xlabel – строка, содержащая метку для оси x.
По умолчанию метка отсутствует.
Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
Пример:
(%i1) load("draw")$
(%i2) draw2d(xlabel = "Time",
explicit(exp(u),u,-2,2),
ylabel = "Population")$
См. ylabel и zlabel.
Значение по умолчанию: "" (пустая строка)
Опция ylabel – строка, содержащая метку для оси y.
По умолчанию метка отсутствует.
Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
Пример:
(%i1) load("draw")$
(%i2) draw2d(xlabel = "Time",
ylabel = "Population",
explicit(exp(u),u,-2,2) )$
См. xlabel и 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.
Значение по умолчанию: auto
Управляет методом изображения делений на оси x.
xtics равно auto, то деления изображаются автоматически.
xtics равно none, то деления не изображаются.
xtics равно положительному числу, то это задает расстояние между соседними делениями.
xtics равно списку длины три вида [start,incr,end],
то деления изображаются от отметки start до end с интервалом incr.
xtics равно набору чисел {n1, n2, ...}, то деления изображаются
для значений n1, n2, ...
xtics равно набору пар чисел вида {["label1", n1], ["label2", n2], ...},
то деления со значением n1, n2, ...
обозначаются метками "label1", "label2", ... соответственно.
Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
Примеры:
Деления отключены.
(%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.
Значение по умолчанию: auto
Управляет методом изображения делений на оси y.
См. xtics для полного описания.
Значение по умолчанию: auto
Управляет методом изображения делений на оси z.
См. xtics для полного описания.
Значение по умолчанию: false
Если xtics_rotate равно true, то деления на оси x поворачиваются на 90 градусов.
Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
Значение по умолчанию: false
Если ytics_rotate равно true, то деления на оси y поворачиваются на 90 градусов.
Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
Значение по умолчанию: false
Если ztics_rotate равно true, то деления на оси z поворачиваются на 90 градусов.
Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
Значение по умолчанию: false
Если xtics_axis равно true, то деления и их метки изображаются вдоль оси x,
если false, то деления изображаются на границе.
Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
Значение по умолчанию: false
Если ytics_axis равно true, то деления и их метки изображаются вдоль оси y,
если false, то деления изображаются на границе.
Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
Значение по умолчанию: false
Если ztics_axis равно true, то деления и их метки изображаются вдоль оси z,
если false, то деления изображаются на границе.
Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: "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.
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: "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.
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: "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.
Значение по умолчанию: 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.
Значение по умолчанию: 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 – имя файла, в котором будут сохранены координаты после щелчка мышкой и нажатия
клавиши ’x’. По умолчанию координаты не сохраняются.
Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
Значение по умолчанию: "" (пустая строка)
Опытные пользователи 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")$
Значение по умолчанию: "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.
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: 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 для двух измерений.
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: 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))$
Значение по умолчанию: 1
point_size – устанавливает размер изображаемых точек.
Значение должно быть неотрицательным числом.
Эта опция влияет на следующие графические объекты:
gr2d: points.
gr3d: points.
Пример:
(%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)))$
Значение по умолчанию: 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).
Эта опция влияет на следующие графические объекты:
gr2d: points.
gr3d: points.
Пример:
(%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]]) )$
Значение по умолчанию: false
Если points_joined равно true, то точки соединяются линиями.
Эта опция влияет на следующие графические объекты:
gr2d: points.
gr3d: points.
Пример:
(%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]]) )$
Значение по умолчанию: 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.
Значение по умолчанию: false
Если transparent равно true, то внутренняя область многоугольников
заполняется в соответствии с fill_color.
Эта опция влияет на следующие графические объекты:
gr2d: polygon, rectangle и ellipse.
Пример:
(%i1) load("draw")$
(%i2) draw2d(polygon([[3,2],[7,2],[5,5]]),
transparent = true,
color = blue,
polygon([[5,2],[9,2],[7,5]]) )$
Значение по умолчанию: true
Если border равно true, то границы многоугольников изображаются в
соответствии с опциями line_type и line_width.
Эта опция влияет на следующие графические объекты:
gr2d: polygon, rectangle и ellipse.
Пример:
(%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]]) )$
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: 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]))$
Значение по умолчанию: 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.
Значение по умолчанию: 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.
Значение по умолчанию: "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.
Значение по умолчанию: "red"
fill_color определяет цвет для заполнения многоугольников и двумерных explicit функций.
См. color для способа задания цвета.
Значение по умолчанию: 0
fill_density – число от 0 до 1, которое задает интенсивность
цвета fill_color в объектах bars.
См. bars для примеров.
Значение по умолчанию: 1
line_width – ширина изображаемых линий.
Значение должно быть положительным числом.
Эта опция влияет на следующие графические объекты:
gr2d: points, polygon, rectangle,
ellipse, vector, explicit, implicit,
parametric и polar.
gr3d: points и parametric.
Пример:
(%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.
Значение по умолчанию: solid
line_type – задает стиль изображения линий.
Возможные значения: solid и dots.
Эта опция влияет на следующие графические объекты:
gr2d: points, polygon, rectangle,
ellipse, vector, explicit, implicit,
parametric и polar.
gr3d: points, explicit, parametric и parametric_surface.
Пример:
(%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.
Значение по умолчанию: 30
nticks – число пробных точек, используемых в графических процедурах.
Эта опция влияет на следующие графические объекты:
gr2d: ellipse, explicit, parametric и polar.
gr3d: parametric.
Пример:
(%i1) load("draw")$
(%i2) draw2d(transparent = true,
ellipse(0,0,4,2,0,180),
nticks = 5,
ellipse(0,0,4,2,180,180) )$
Значение по умолчанию: 10
adapt_depth – максимальное число разбиений, используемое в адаптивных графиках.
Эта опция влияет только на двумерные explicit функции.
Значение по умолчанию: "" (пустая строка)
key – наименование функции в легенде. Если key – пустая строка, то ничего не изображается.
Эта опция влияет на следующие графические объекты:
gr2d: points, polygon, rectangle,
ellipse, vector, explicit, implicit,
parametric и polar.
gr3d: points, explicit, parametric
и parametric_surface.
Пример:
(%i1) load("draw")$
(%i2) draw2d(key = "Sinus",
explicit(sin(x),x,0,10),
key = "Cosinus",
color = red,
explicit(cos(x),x,0,10) )$
Значение по умолчанию: 30
xu_grid – число координат первой переменной
(x в явной и u в параметрической трехмерной поверхности)
для построения сетки пробных точек.
Эта опция влияет на следующие графические объекты:
gr3d: explicit и parametric_surface.
Пример:
(%i1) load("draw")$
(%i2) draw3d(xu_grid = 10,
yv_grid = 50,
explicit(x^2+y^2,x,-3,3,y,-3,3) )$
См. yv_grid.
Значение по умолчанию: 30
yv_grid – число координат второй переменной
(y в явной и v в параметрической трехмерной поверхности)
для построения сетки пробных точек.
Эта опция влияет на следующие графические объекты:
gr3d: explicit и parametric_surface.
Пример:
(%i1) load("draw")$
(%i2) draw3d(xu_grid = 10,
yv_grid = 50,
explicit(x^2+y^2,x,-3,3,y,-3,3) )$
См. xu_grid.
Значение по умолчанию: 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)) )$
Значение по умолчанию: none
Опция contour позволяет пользователю выбрать, где изображать контурные линии.
Доступны следующие значения:
none:
нет контурных линий.
base:
контурные линии изображаются на xy плоскости.
surface:
контурные линии изображаются на поверхности.
both:
две контурные линии – на поверхности и на плоскости xy.
map:
контурные линии проецируются на плоскость xy, а точка наблюдения расположена
вертикально над этой плоскостью.
Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
Пример:
(%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) $
Значение по умолчанию: 5
Эта опция управляет способом изображения контуров.
contour_levels может иметь значение в виде положительного целого числа,
списка трех чисел или произвольного набора чисел:
contour_levels равно положительному целому числу n,
то будет изображено n контурных линий через равный интервал.
По умолчанию изображается пять равноудаленных контурных линий.
contour_levels равно списку трех чисел [lowest,s,highest],
то контурные линии изображаются с lowest по highest с шагом s.
contour_levels равно набору чисел {n1, n2, ...},
то контурные линии изображаются для значений n1, n2, ...
Поскольку это глобальная графическая опция, ее расположение в описании сцены не имеет значения.
Примеры:
Контурные линии, расположенные на равном расстоянии. Число уровней можно настраивать.
(%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.
Значение по умолчанию: 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)$
Значение по умолчанию: [50, 50]
ip_grid задает решетку для первой пробной выборки для неявных графиков.
Эта опция влияет только на объекты типа implicit.
Значение по умолчанию: [5, 5]
ip_grid_in задает решетку для второй пробной выборки для неявных графиков.
Эта опция влияет только на объекты типа implicit.
Значение по умолчанию: 10
x_voxel есть число вокселей в направлении x, используемых в
алгоритме марширующих кубов, реализованном лоя трехмерных implicit объектов.
Значение по умолчанию: 10
y_voxel есть число вокселей в направлении y, используемых в
алгоритме марширующих кубов, реализованном лоя трехмерных implicit объектов.
Значение по умолчанию: 10
z_voxel есть число вокселей в направлении z, используемых в
алгоритме марширующих кубов, реализованном лоя трехмерных implicit объектов.
Функция 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 строит объект, который описывает трехмерную сцену.
Аргументы есть графические опции и графические объекты.
Эта сцена интерпретируется последовательно: графические опции влияет на графические объекты,
неположенные справа от них. Некоторые графические опции глобально влияют на вид сцены.
Это список графических объектов, доступных для сцены в трех измерениях:
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").
Строит точки в двух и трех измерениях.
Следующие графические опции влияют на этот объект: 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,...]):
строит на плоскости многоугольник с вершинами [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]) строит прямоугольник с противоположными вершинами
[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, ...])
Строит полоски с центрами на 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)
строит эллипс с центром в [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_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]) )$
Строит вектор в двух или трех измерениях.
Следующие графические опции влияют на этот объект: 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) строит явную функцию 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)
строит неявную функцию, определенную 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) изображает функцию
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)
строит функцию 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)
строит функцию 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))$
Строит параметрическую функцию в двух и трех переменных.
Следующие графические опции влияют на этот объект: 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) строит изображение 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 находятся более развернутые примеры.
Значение по умолчанию: false
boundaries_array – это массив, в котором графический объект geomap
ищет координаты границ.
Каждая компонента boundaries_array есть массив чисел с плавающей точкой –
координат многоугольного сегмента или границы карты.
См. geomap.
Строит карты в двух и трех измерениях.
Два измерения
Эта функция работает вместе с глобальной переменной 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).
Доступны следующие трехмерные проекции:
[spherical_projection,x,y,z,r]: проецирует границы карты на сферу
радиуса r с центром в (x,y,z).
(%i1) load("draw")$
(%i2) load("worldmap")$
(%i3) draw3d(geomap(Australia), /* default projection */
geomap(Australia,
[spherical_projection,2,2,2,3]))$
[cylindrical_projection,x,y,z,r,rc]: ре-проецирует сферические границы карты
на цилиндр радиуса rc и осью, проходящей через полюса глобуса радиуса r с центром в
(x,y,z).
(%i1) load("draw")$
(%i2) load("worldmap")$
(%i3) draw3d(geomap([America_coastlines,Eurasia_coastlines],
[cylindrical_projection,2,2,2,3,4]))$
[conic_projection,x,y,z,r,alpha]: ре-проецирует сферические границы карты
на конус с углом alpha с осью,
проходящей через полюса глобуса радиуса r с центром в
(x,y,z). Оба северный и южный конусы касательны к сфере.
(%i1) load("draw")$
(%i2) load("worldmap")$
(%i3) draw3d(geomap(World_coastlines,
[conic_projection,0,0,0,1,90]))$
См. http://www.telefonica.net/web2/biomates/maxima/gpdraw/geomap для более сложных примеров.
Строит параметрическую поверхность в трех измерениях.
Три измерения
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) )$
Изображает серию графических сцен. Ее аргументы есть 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.
Эта функция является сокращением для
draw(gr2d(options, ..., graphic_object, ...)).
Она может использоваться для изображения одиночной двумерной сцены.
Для того, чтобы использовать эту функцию, ее следует загрузить командой load("draw").
См. также draw и gr2d.
Эта функция является сокращением для
draw(gr3d(options, ..., graphic_object, ...)).
Она может использоваться для изображения одиночной трехмерной сцены.
Для того, чтобы использовать эту функцию, ее следует загрузить командой load("draw").
См. также draw и gr3d.
Next: Функции и переменные для карты мира, Previous: Функции и переменные пакета draw, Up: Пакет draw [Contents][Index]
Возвращает объект типа картина уровней. make_level_picture (data)
строит объект картина из матрицы data.
make_level_picture (data,width,height)
строит объект из списка чисел; в этом случае должны быть заданы оба параметра
width и height.
Возвращает объект типа картина, содержащий следующие четыре части:
level
Пример:
Картина уровней из матрицы.
(%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)})
Возвращает true, если аргумент является правильно сформированной картиной,
и false в противном случае.
Возвращает true, если картины совпадают, и false в противном случае.
Возвращает rgb-цветную картину. Все три аргумента должны быть картинами уровней, с уровнями, задающими красный, зеленый и синий цвета соответственно.
Возвращаемый объект картина содержит следующие четыре части:
rgb
Пример:
(%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)})
Если параметр 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)})
Возвращает негатив картины (уровней или rgb).
Преобразует rgb картину в картину уровней усреднением красного, зеленого и синего каналов.
Возвращает пиксел из картины. Координаты x и y должны быть от 0 до
width-1 и height-1 соответственно.
Читает файл в формате xpm и возвращает объект типа картина.
Previous: Функции и переменные для картин, Up: Пакет draw [Contents][Index]
Определяет многоугольные сегменты из глобальной переменной 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(%))$
Строит многоугольные сегменты (границы), обозначаемые числами (координаты в 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)$
Возвращает объект 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)$
Строит многоугольники, необходимые для изображения страны в цвете. Если есть острова, то страна определяется более чем одним многоугольником.
Пример:
(%i1) load("draw")$
(%i2) load("worldmap")$
(%i3) make_poly_country(India)$
(%i4) apply(draw2d, %)$
Строит многоугольники, необходимые для изображение континента или списка стран в цвете.
Пример:
(%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]