Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];

Вниз

Нужно мнение по редактору графов.   Найти похожие ветки 

 
@!!ex ©   (2007-04-11 19:15) [0]

Пишу сейчас редактор графов для синтаксического анализатора на базе конечных автоматов.
Раньше пользовался табличным редактором, но после того как появилась чуть более сложная задача понял, что такая гигантская тупая таблица это очень не удобно и не понятно...
Собственно хотелось услышать ваше мнение по поводу:
Чего изменить, что хорошо, что плохо и вообще.
http://afera-net.narod.ru/GraphEditor.rar 186кб - ехешник.
http://afera-net.narod.ru/GraphHelpDOC.rar 204кб - хелп в доке.
http://afera-net.narod.ru/GraphHelpRTF.rar 351кб - хелп в ртф.
Хелпы со скриншотами, с небольшим описанием как чего делать.
Комментов по хелпу не надо, и так понятно что его переделывать придется, но другого пока нету.


 
ferr ©   (2007-04-11 19:22) [1]

Я как-то выкладывал здесь свой редактор графов.. Может у кого остался ибо я  всё профукал =)


 
@!!ex ©   (2007-04-11 19:24) [2]

Тут скорее камменты нужны не по непосредственно редактору графов, а по применению данного редактора к Конечным Автоматам.


 
vasIZmax ©   (2007-04-11 19:28) [3]

exit не работает:)


 
@!!ex ©   (2007-04-11 19:38) [4]

> [3] vasIZmax ©   (11.04.07 19:28)

Исправил, выкладывать не буду, траффик жалко, а изменений - мизер.


 
default ©   (2007-04-11 20:48) [5]

у тебя перемещать только всё картинку можно?
а овалики отдельно таскать нельзя?
это надо поправить
и возможно групповое выделение и перемещение добавить(хз)


 
Наиль ©   (2007-04-11 21:37) [6]


> [5] default ©
> а овалики отдельно таскать нельзя?

У него это возможно,если тянуть за ключевые точки.

> [2] @!!ex ©
> Тут скорее камменты нужны не по непосредственно редактору
> графов, а по применению данного редактора к Конечным Автоматам.

По интерфейсу программы замечаний много, но не об них речь.
Мои знания о конечных автоматах малы, поэтому, если скажу что-то не то, то поправте.
Во-первых, начальное состояние должно быть единственным (наверное).
Я сделал циклический граф, поменял всем узлам названия, и... (барабаная дробь) ...и кто из них Root.
Вывод: начальное состояние должно отличаться от остальных, хотя бы по цвету.
Во-вторых, ты сделал отличный редактор графов (если ещё подправить управление мышью), но практической пользы мало. Вот если бы можно посмотреть действие графа пошагово. В качестве примера я взял граф, у которого из одного состояния есть несколько выходов. Предлагаю 2 решения:
1. Сложный. Каждый выход описывает условие перехода из текущего состояния в следующее. Простое условие = сравнение двух величин, сложное условие = скрипт (script). Чтобы прохождение по путям было разное, нужно подавать на вход (root) разные данные.
2. Простой. Вручную укзывается, какие данные подаются на вход, и какой путь должен буть пройден по графу. Такой редактор помог бы приводить мысли в порядок и находить ошибки в рассуждениях.


 
@!!ex ©   (2007-04-11 22:13) [7]

> [5] default ©   (11.04.07 20:48)

Смысл такой, что сначало надо выделить точку, а потом кликнуть еще раз, чтобы подвигать.
Пока не знаю как нормально сделать и так уже чисто обработка дерева около 500 строк.


> Во-первых, начальное состояние должно быть единственным
> (наверное).

Оно и есть единственное. :))


> Я сделал циклический граф, поменял всем узлам названия,
> и... (барабаная дробь) ...и кто из них Root.
> Вывод: начальное состояние должно отличаться от остальных,
> хотя бы по цвету.

Согласен. Хотя никогда об этом не задумывался.... Типа ну надо, так выдели названием. :))
Да и редко бывает что кто то указывает на начальное состояние, поэтому оно единственное у кого нету родителя.
Хотя идея правильная, исправлю.


> Во-вторых, ты сделал отличный редактор графов (если ещё
> подправить управление мышью), но практической пользы мало.
> Вот если бы можно посмотреть действие графа пошагово.

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


> 1. Сложный. Каждый выход описывает условие перехода из текущего
> состояния в следующее. Простое условие = сравнение двух
> величин, сложное условие = скрипт (script). Чтобы прохождение
> по путям было разное, нужно подавать на вход (root) разные
> данные.

Не. Не катит. Условие только одно. Конкретный текущий символ в потоке данных. Все. Для этого у соединения и есть Event. Алфавит по которому происходит переход. В этом и суть конечного автомата.


> 2. Простой. Вручную укзывается, какие данные подаются на
> вход, и какой путь должен буть пройден по графу. Такой редактор
> помог бы приводить мысли в порядок и находить ошибки в рассуждениях.

Ну тоде не кактит. не в этом смысл...

Но идея о том, чтобы в тестовом режиме давать данные и пошагово смотреть какой путь проходит автомат - это интересно!


 
Наиль ©   (2007-04-11 22:36) [8]

> Не. Не катит. Условие только одно. Конкретный текущий символ
> в потоке данных. Все. Для этого у соединения и есть Event.
> Алфавит по которому происходит переход. В этом и суть конечного
> автомата.

Event - это то, что я назвал условием (мой вариант - общий случай). Просто, без справки не понял как им пользоваться. Буду знать.
Кстати, мне показалось, или действительно русский шрифт не поддерживается.
Не забудь сделать проверку на совпадения событий (Event) для двух линков (Link) выходящих из одного состояния (State).
В первом линке не убираются некоторые события. Так и должно быть?
Я бы заменил овалы на прямоугольники (или круглоугольники), т.к. пустота в овалах съедает очень много места. Особено при длином тексте ~10 букв.


 
@!!ex ©   (2007-04-11 22:46) [9]

> Event - это то, что я назвал условием (мой вариант - общий
> случай). Просто, без справки не понял как им пользоваться.
> Буду знать.

Просто это как раз подразумевается когда говорится о конечных автоматах.


> Кстати, мне показалось, или действительно русский шрифт
> не поддерживается.

Есть такой косяк. DOS кодировка. не знаю я о существовании виндового моноширинного шрифта.


> Не забудь сделать проверку на совпадения событий (Event)
> для двух линков (Link) выходящих из одного состояния (State)
> .

Надо будет варнинг писать....


> В первом линке не убираются некоторые события. Так и должно
> быть?

Нет... Не должно быть. Только сейчас вспомнил об этом баге. Спасибо, что сказал!!!! Буду искать причину.


> Я бы заменил овалы на прямоугольники (или круглоугольники)
> , т.к. пустота в овалах съедает очень много места. Особено
> при длином тексте ~10 букв.

Нам на препод обычно рисует состояния круглыми с цифрами внутри, поэтому и сделал круглые. Действиетльно надо будет опционально менять, как удобнее юзеру.


 
@!!ex ©   (2007-04-11 22:48) [10]

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


 
Наиль ©   (2007-04-11 22:49) [11]

> не знаю я о существовании виндового моноширинного шрифта

Courier (New)?


 
Наиль ©   (2007-04-11 22:52) [12]

Ещё пару замечаний.
1. Было бы удобнее кликать по овалу, чем по точке в нём.
2. Красные точки не реагируют на мышь.


 
@!!ex ©   (2007-04-11 22:53) [13]

> Courier (New)?

Спасибо!
Тема.
Хотя видимо придется тоже опционально делать.


 
@!!ex ©   (2007-04-11 22:56) [14]

> Было бы удобнее кликать по овалу, чем по точке в нём.

Во первых так потому что у линков тоже точки.
Во вторых изначально так удобнее было.
В третьих как бы самое главное - это точка привязки, а овал - всего лишь поле с текстом.
Я думал так сделать, пока не пришел к какому то решению.


> Красные точки не реагируют на мышь.

Зеленые точки - не выбранные.
Синяя - выбранная.
Красная - на которой сейчас мышь....
НЕ понимаю сути замечания. Что значит не реагируют, и почему во множественном числе?


 
Наиль ©   (2007-04-11 23:02) [15]

> Я думал так сделать, пока не пришел к какому то решению.

Я предлагал делать не вместо, а вместе. Т.е. и через овал, и через точки.

> НЕ понимаю сути замечания.

Попробуй схватить и потянуть зелёную точку.


 
@!!ex ©   (2007-04-11 23:15) [16]


> Попробуй схватить и потянуть зелёную точку.

> [7] @!!ex ©   (11.04.07 22:13)
> > [5] default ©   (11.04.07 20:48)
>
> Смысл такой, что сначало надо выделить точку, а потом кликнуть
> еще раз, чтобы подвигать.
> Пока не знаю как нормально сделать и так уже чисто обработка
> дерева около 500 строк.


Вообще сейчас в тестовом режими сделал перетаскивание сразу, а не после выделения.
Но это немного ломает концепцию которой ранее придерживался, о том, что любое редактирование элемента снимает с него выделение.
Хотя.... Думаю сделаю.


 
iZEN ©   (2007-04-12 21:01) [17]

Вот ещё замечательный редактор GRaph INterface (GRIN):
http://www.geocities.com/pechv_ru/



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.042 c
2-1177050778
vitv
2007-04-20 10:32
2007.05.13
Поиск эдита на форме.


15-1175676785
Layner
2007-04-04 12:53
2007.05.13
Кто пользуется альтернативными прогр. мгн. сообщений


1-1173858684
Novice
2007-03-14 10:51
2007.05.13
Интеграция своего пункта в контекстное меню Windows


15-1176752457
Raderd
2007-04-16 23:40
2007.05.13
Как на форме перемещать объекты?


2-1177340248
Никитин К
2007-04-23 18:57
2007.05.13
выручите, плиз! Не представляю как делать...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский