На досуге я написал программу, которая наверняка кому-то будет полезна. Называется TreeBuilder. С помощью нее можно рисовать синтаксические деревья.
Дерево состоит из узлов (представляют из себя текст, для которого можно выбрать шрифт, цвет, стиль, а также написать текст, который будет отображаться в индексе), которые можно соединять с помощью линий и стрелок (для линий и стрелок стиль тоже настраивается). Узлы автоматически центрируются по сетке. Узлы можно перетаскивать (надо сделать на узле двойной клик и удерживать кнопку мыши), стрелки и линии при этом автоматически перерисуются.
Итоговое дерево сохраняется либо в xml, из которого можно открыть дерево и работать с ним дальше, либо в графический файл (bmp, jpeg, png, gif). Я бы порекомендовал сохранять в bmp или png, т.к. jpeg и gif сжимают исходный графический файл, и результат получается слегка размытым.
Как пользоваться:
- Клик правой кнопкой мыши на главном окне - главное меню.
- Клик правой кнопкой мыши на узле - меню узла (позволяет выбрать шрифт, связать его с другими узлами, удалить и т.п.)
- Двойной клик левой кнопкой на узле и удерживание позволяет перетаскивать узел.
- Индекс к узлу можно поставить, если кликнуть на него правой кнопкой. В самом низу менюшки будет текстовое окошко, содержимое которого и есть индекс. Отрисуется автоматически, как только содержимое окошка изменится.
- Стиль стрелок настраивается в отдельном окошке (открывается Главное меню->Объекты...).
- Можно настроить стиль узлов и стрелок по-умолчанию (Главное меню->Настройки)
Если будут вопросы, то меня всегда можно спрашивать по почте.
Скачать можно
тут. Для работы программы нужен
.NET Framework 3.5Скачивающих убедительная просьба отметиться тут или письмом мне (можно анонимно), т.к. я хочу понять, насколько мне вообще стоит усовершенствовать программу дальше.