Урок 1: мой первый граф

Граф создаётся следующим образом:

graph: {     }

Узлы и рёбра указываются внутри графа (т. е., между фигурными скобками) и отделяются друг от друга пробельными символами (пробелами, табуляциями или переводами на новую строку). Количество пробельных символов значения не имеет.

Узел (вершина) графа создаётся следующим образом:

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:» пробелы не допускаются Перед прочими двоеточиями допускается сколько угодно пробелов.
  • По аналогии с надписями на узлах могут создаваться надписи на рёбрах. Об этом речь пойдёт в отдельном уроке.
  • Надписи на узлах — в отличие от их названий — могут быть одинаковыми. Поставить одинаковые надписи сразу на нескольких/всех узлах можно с помощью глобальных атрибутов.

Наверх