График — набор команд, которые рисуют различные объекты. Формат команды обычно такой:

command[#id][.class1[.class2[...]]] [arg1:v1 [arg2:v2[...]]] [u1 [u2]]

Символы внутри квадратных скобок [] являются опциональными.

  • command — тип создаваемого объекта.
  • id — уникальный (в рамках графика) идентификатор. Может быть пустым
  • class1 — класс. Объектам можно добавлять различные классы, чтобы менять их внешний вид. Может быть пустым
  • arg1:v1 — пара "ключ-значение" задает определенный атрибут объекта. Например, координату xxx:0. Пары "ключ-значение" разделяются пробелами. Если значение — это текст, то его нужно писать в кавычках. name:"Вася"
  • u1 — простые аргументы для некоторых команд, разделенные пробелами. Например, если нужно указать координаты и текст, достаточно написать text 1 3 "ABC".

Как создать график

Для создания графика нужно перейти на новый параграф, кликнуть на значок , а в открывшемся меню выбрать кнопку "График или геометрическая фигура" . В результате в тексте документа появится стандартная заготовка графика. Чтобы изменить вид графика, нажмите на зеленую кнопку "Редактировать". Код графика откроется во всплывающем окне.

Каждая строчка в коде графика соответсвует одной команде. Для перехода на новую строчку надо одновременно нажать на клавиши Shift и Enter.

Для того чтобы применить сделанные вами изменения в коде графика, нажмите на кнопку "Обновить".

Сетка

Теперь мы можем создать координатную сетку командой grid.

У всех графиков стандартный размер 300300 px×\times300300 px. Изменить его нельзя.

Каждая точка на графике задается координатами по горизонтальной и вертикальной оси. По умолчанию график создается с координатами от (-2;-2) до (14;14).

Класс light-grid сделал сетку светло-серой.

Координатную плоскость при желании можно изменить. Делается это с помощью команды chart. Например, строка кода графика

chart minx:-2 maxx:5 miny:-4 maxy:7

сдвинет начало координат и сделает "ячейки" сетки прямоугольными (например, miny:-4 следует читать так: минимальная координата по вертикальной оси равна 4-4).

Точки

На графиках можно создавать отдельные точки, а затем использовать их как вершины для многоугольников и путей.

Определение точки начинается с решетки, за которой могут следовать классы, разделенные точками. Затем следуют координаты точки через пробел.

Например, #A.c1.c2 3.3 5 создает точку с названием A, классами c1 и c2 и координатами (3,3;5). Десятичные дроби в координатах разделяются точкой.

По умолчанию название точки скрыто. Чтобы отобразить его, нужно добавить один из классов, которые определяют положение текста относительно точки. Классы: n, e, w, s, ne, nw, se, sw. Как нетрудно заметить, классы соответствуют сторонам света.

Нарисовать маркеры точек можно двумя способами:

  1. при создании точки поставить перед решеткой букву p (от английского point), например p#A 3.3 5;
  2. создать точку, а затем в новой строке использовать команду dots. Например, dots A B проставляет маркеры точек AA и BB.

Полный код этого графика выглядит так:

Вариант 1

chart minx:-1 miny:-1 maxx:8 maxy:8
p#A.nw 1 1
p#B.se 3 3
p#C.n 5 5

Вариант 2

chart minx:-1 miny:-1 maxx:8 maxy:8
#A.nw 1 1
#B.se 3 3
#C.n 5 5
dots A B C

Где можно использовать точки?

На данный момент точки можно использовать только в многоугольниках (команда poly ), путях path, маркерах точек dots и как центр окружности или эллипса.

Многоугольники и ломаные

Команда poly создает произвольный многоугольник. Аргументами команды должны быть id ранее созданных точек.

Код графика

chart minx:0 miny:-4 maxx:14 maxy:10
p#A.s 1 1
p#B.n 9 7
p#C.s 13 1
poly A B C

Команда path создает ломаную. Аргументами команды также должны быть id ранее созданных точек.

Код графика

chart minx:-2 miny:-2 maxx:14 maxy:14
p#A.s 1 1
p#B.n 9 7
p#C.n 2 12
path A B C

Пример параллелограмма

Код графика

chart minx:0 miny:-1 maxx:6 maxy:5
#A.sw 1 1
#B.n  2 3
#D.se 4 1
#C.n 5 3
poly A B C D
path A C

Дужки и штрихи

Для обозначения равных отрезков нужно использовать path, у которого указан один из следующих классов: .stroke, .stroke2, .stroke3.

Пример

chart minx:0 miny:-4 maxy:12 maxx:16
#A 5 4
#B 11 4
#C 8 9.2
#D 8 -3
path.stroke2 A B C A
path.stroke1 A D B

Для создания дужек есть классы .arcs, .arcs2, .arcs3 и .arcs90. При создании дужек иногда удобно скрывать основные линии пути. Для этого служит класс .hidden.

Код графика

chart minx:0 maxx:8 miny:0 maxy:8
#A 1 1
#B 7 1
#C 7 6
poly A B C
path.hidden.arcs90 A B C
path.hidden.arcs2 B A C
path.hidden.arcs1 A C B

Стрелки

На концах пути можно нарисовать стрелки, например для обозначения векторов. Для этого служат классы .arrow, .larrow, .rarrow.

Кроме того, можно воспользоваться командой arrow.

Код графика

chart minx:0 miny:0 maxx:9 maxy:9
#A1 1 8
#A2 1 6
#A3 1 4
#B1 7 8
#B2 7 6
#B3 7 4
#A4 1 1
#B4 7 2
path.arrow A1 B1
path.larrow A2 B2
path.rarrow A3 B3
arrow A4 B4

Стили линий и цвета

Можно нарисовать пунктирную линию, добавив к команде path класс .dashed.

Код графика

chart minx:-2 maxx:14 miny:-2 maxy:14
#A.sw 0 0
#B.n 12 12
path.dashed A B

Можно изменить цвет линии и цвет заливки геометрической фигуры. Для этого существуют следующие классы:

Цвет линииЦвет заливки
.red — красный.redfill — прозрачный красный
.green — зеленый.greenfill — прозрачный зеленый
.white — белый.whitefill — прозрачный белый
.noborder — невидимая линия (для границ многоугольников).crystal — прозрачный серый

.bluefill — прозрачный синий

Окружность и эллипс

Окружность или эллипс можно изобразить с помощью команды ellipse Она принимает в качестве аргументов имя центральной точки и два числа: радиус по xx и радиус по yy. Если радиус по yy не указан, он считается равным радиусу по xx.

Код графика

chart minx:-1 miny:-1 maxx:7 maxy:7
#O 3 3
ellipse.crystal O 3
ellipse.white.greenfill O 2 2.7

Дуги эллипсов

Можно нарисовать дугу окружности или, в общем случае, эллипса с помощью команды arc.

Есть две её формы:

1. Задать две точки — концы дуги, а также два радиуса эллипса, дугу которого мы рисуем.

Код графика

chart minx:1 miny:-1 maxx:13 maxy:11
#p_1.s 5 1
#p_2.n 5 9
dots p_1 p_2
arc p_1 p_2 rx:4 ry:4

#p_3.s 8 1
#p_4.n 8 9
arc p_4 p_3 rx:5 ry:5

2. Задать центр, радиусы и максимальный и минимальный угол.

Код графика

chart minx:0 maxx:15 maxy:12 miny:-3
p#O.s 8 4
arc O rx:5 ry:5 min:0 max:1
arc.sector O rx:5 ry:5 min:-3.14 max:-2

Добавив класс .sector, можно нарисовать линии до центра эллипса.

Текст

Команда text x y "bla bla" выводит заданный текст в точке с координатами xx, yy.

Альтернативный способ вывести текст — создать именованную точку #P x y "bla bla".

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

Код графика

chart minx:0 miny:0 maxx:8 maxy:8
grid
text 5 5 "\sin x"
#P 4 6 "\cos x"

Кривые, в том числе графики гладких функций

Кривая создается с помощью команды spline. Эта команда проводит гладкую линию между точками, которые задаются в явном виде. У команды spline следующие аргументы:

  • пары "ключ-значение" min:x1 и max:x2, где x1x_1 и x2x_2 — минимальное и максимальное значения (по оси xx) области определения графика;
  • пара "ключ-значение" step:s, где ss — шаг между точками, которые вы задаете в явном виде; чем меньше ss, тем больше точек надо задать, но тем точнее будет график;
  • пара "ключ-значение" points:p1,p2,p3,...,pn. Количество точек nn, которые надо задать, определяется по формуле n=x2x1s+1n=\frac{x_2-x_1}{s}+1 (то есть вам надо задать значения функции на концах отрезка и во всех промежуточных точках). p1p_1, p2p_2, p3p_3 и т.д. — значение функции по оси yy в каждой из этих точек.

Код графика

chart minx:-8 maxx:8 miny:-2 maxy:14
p#O 0 0
#X_1 -7 0
#X_2 7 0
arrow X_1 X_2
#Y_1 0 -1.5
#Y_2 0 13
arrow Y_1 Y_2
spline.green min:-3 max:3 step:1 points:9,4,1,0,1,4,9
spline min:-0.5 max:4 step:0.5 points:2.54,3,2.54,1.58,1.01,1.34,2.28,2.96,2.75,1.85

Поверхность, или штриховка (используется в физике)

Для того чтобы нарисовать линию со штрихами, которая обозначает неподвижную поверхность (землю, стену) в физике, следует сначала использовать команду path, а затем (с новой строчки) — команду earth. Аргументами обеих команд должны быть id ранее созданных точек.

Классы .up (вверх), .down (вниз), .left (влево), .right (вправо) определяют направление штриховки.

Код графика

chart minx:-2 maxx:14 miny:-2 maxy:14
#A.n 0 12
#B.n 5 12
path A B
earth A B
#C.s 5 9.1
#D.s 10 9.1
path C D
earth.up D C
#E.e 1 1
#F.e 1 8
path E F
earth.left E F
#H.sw 4.9 6.9
#I.s 10 3
path I H
earth.right I H