Урок 1: мой первый граф
Граф создаётся следующим образом:
Узлы и рёбра
указываются
внутри графа
(т. е., между
фигурными
скобками)
и отделяются
друг от друга
пробельными символами (пробелами, табуляциями или переводами на новую строку).
Количество
пробельных символов
значения не имеет.
Узел (вершина) графа
создаётся следующим образом:
node: { title: "название узла" } |
Название
каждого узла
должно быть
уникальным.
Иначе говоря,
недопустимо
наличие в графе
двух и более
узлов с
одинаковыми
названиями.
В названиях
узлов
учитывается
регистр
и пробелы.
Иначе говоря,
"я",
"Я" и
"я " —
три разных
узла.
Ребро графа
создаётся следующим образом:
edge: { source: "название исходного узла"
target: "название узла назначения"
} |
Опять же,
названия
узлов должны
указываться
с учётом
регистра
и пробелов.
Пример простого графа:
graph: {
node.fontname: "helvR14"
node: { title: "мама" }
node: { title: "папа" }
node: { title: "я" }
edge: { source: "мама" target: "я" }
edge: { source: "папа" target: "я" }
} |
|
 |
Хозяйке на заметку
- Поддержка
кириллицы (UTF-8) —
начиная
с версии aiSee 3.
aiSee 2.x
поддерживает
только
латиницу (ISO 8859-1).
- По умолчанию,
aiSee 3 использует векторный шрифт,
в котором нет букв кириллицы.
Как выбрать другой шрифт,
будет подробно рассказано
в отдельном уроке.
В вышеупомянутом примере используется
шрифт Гельветика кеглем в 14 пикселей,
указанный при помощи глобального атрибута
«
node.fontname: "helvR14"».
По умолчанию,
при визуализации
в качестве
надписи на узле
используется
его название.
Изменить надпись, не изменяя названия узла,
вы можете
с помощью
атрибута «label»:
node: { title: "папа"
label: "Иван Иванович"
} |
|
 |
Надписи могут состоять из нескольких строк:
node: { title: "папа"
label: "Иван
Иванович
Иванов"
} |
|
 |
Допускается
использование
в надписях
знака перевода строки «\n»
и знака табуляции «\t».
Двойные кавычки
(точнее, знак дюйма)
могут указываться
при помощи «\"».
node: { title: "папа"
label: "Иван\n\"Рэмбо\"\nИванов"
} |
|
 |
Допускаются
комментарии в
стиле C++ (комментарий
начинается
с «//»
и продолжается
до конца строки) и в стиле C
(комментарий
заключается
между «/*» и «*/»):
// Это -- комментарий в стиле C++
/* А это -- комментарий в стиле C */ |
Заключительный пример урока:
graph: {
// Выбор шрифта Гельветика кеглем в 14 пикселей
node.fontname: "helvR14"
// Перечень узлов
node: { title: "мама" }
node: { title: "папа" }
node: { title: "дочь1" label: "дочь\n(Маша)" }
node: { title: "дочь2" label: "дочь\n(Галя)" }
// Перечень рёбер
edge: { source: "мама" target: "дочь1" }
edge: { source: "мама" target: "дочь2" }
edge: { source: "папа" target: "дочь1" }
edge: { source: "папа" target: "дочь2" }
} |
|
 |
Хозяйке на заметку
- Перед двоеточиями
в ключевых словах
«
graph:», «node:» и «edge:»
пробелы не допускаются
Перед прочими
двоеточиями
допускается
сколько угодно
пробелов.
- По аналогии
с надписями
на узлах
могут
создаваться
надписи на
рёбрах.
Об этом
речь пойдёт
в
отдельном уроке.
- Надписи на узлах —
в отличие от
их названий —
могут быть
одинаковыми.
Поставить одинаковые надписи
сразу на нескольких/всех узлах
можно с помощью
глобальных атрибутов.