Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Нужно создать приложение, которое позволяет пользователю рисовать направленный граф на C#. Обратите внимание – любой направленный граф, а не только дерево или интеллект карту! 

Для дальнейшего описания определимся с терминологией. Узлы (или ноды) – вершины графа. Связи – ребра графа. 

Узлам должна быть возможность задавать размер, иконки, текст. Во внутреннем представлении узла должно присутствовать текстовое поле Description. Желательно сделать нод такой формы prntscr.com/dk7xfc  . Высота у него всегда одинаковая, а длина может меняться в  зависимости от длины текста в нем. Из вышесказанного также делаем вывод – текст должен всегда находиться в ноде 

Для связей нужно иметь возможность задать текст (который лежит на ребре) и оформление. На конце связи (то есть на узле, куда приходит связь) должна быть стрелочка prnt.sc/dk7yea  

Требования к внешнему виду: жестких нету, но по возможности посимпатичнее) Чем ближе Mindjet MindManager , тем лучше)  

Должно поддерживаться: 

1. при нажатии на нод он должен просто выделяться (для выделеного пусть будет окаемка какая то специфическая prntscr.com/dkuyg9 ) 

2. Перемещение узлов: зажали мышку захватили и несем куда хотим. Когда завершили движение и отпустили мышку – все передвижение закончилось. 

3. При клике левой кнопкой мышки на свободном участке экрана – создается нод. 

4. при наведении мышки на нод у него на каждой из сторон появляются кружочки (по аналогии как здесь плюсики prntscr.com/dkuxk0  ). Для создания связи между двумя нодами пользователь должен сделать mousedown на одном из кружочков исходного нода и дотянуть мышку до другого нода. Таким образом у нода 4 кружочка и от любого из них может отходить к другим нодам любое количество связей. Связи на других нодах заканчиваются в произвольной локации. 

5. Отображение поля Description нода. Создаем панель справа (она ВНЕ поля для рисования нодов). При выделении конкретного нода на панели отображается поле RichTextBox, в котором выводится Description этого нода. Пользователь может его редактировать. При снятии выделения новое значение (отредактированное) автоматически сохраняет как актуальный Description prntscr.com/dkuz6m 

Будущее: 

- Автомасштабирование расположения новых вершин с окружения (других вершин), среди которых они созданы. 

- Возможность делать дуговые ребра  prntscr.com/dml2hu 

Нарисованный граф должен сериализоваться в xml (и соответственно десериализоваться).  

Приложение делаем на C# .NET4 под VS 2012. На выходе – проект с исходниками. Можно юзать любую готовую бесплатную либу. Обсудим варианты готовых решений или технологий на базе которых реализовать. Можно, например, на WPF. После реализации отдельно нужно будет создать документацию. 

7 лет назад
lofti
37 летУкраина
15 лет в сервисе
Был
7 лет назад
16 отзывов(-1)
  • Похожие заказы
  • Небольшую (менее 700 линий кода) математическую программу на Паскале (написана была на Турбо Паскале) необходимо переписать на Перле. Перловская программа должна работать под Юбунту. Программа должна быть переписана на Перле с максимальным сохранением первоначальной структуры, поэтому ...

    Закрыт
    7 лет назад
  • Для лабораторной работы нужен архиватор ТЗ: - Нужен архиватор, похожий внешне на WinRAR - Можете найти и взять любые готовые исходники и поправить только название, окно о программе - Скомпилировать в ехе

    Прикладное ПО1 исполнитель
    Закрыт
    7 лет назад
  • $100

    Нужно научить меня пользоваться OrgMode посредством общения и удалённых сессий (TeamViewer, Skype, Email), а также провести обзор исходников пакета org. Нужно будет провести серию  консультаций до полного освоения OrgMode.  От вас нужно знание исходников Emacs ...

    Прикладное ПОнет заявок
    Закрыт
    7 лет назад
  • Разработан миниатюрный наручный GPS трекер, необходимо написать firmware.  . знание 8-ми разрядных контроллеров производства SiLabs, ОПЫТ работы с GSM модулями (сервис пакетной передачи данных - GPRS), ну и Си разумеется.  Взяли на данную задачу знаменитого ...

    Закрыт
    7 лет назад
  • Простая программка под виндовс. Есть несколько обновляемых текстовых файлов, нужно их синхронизировать в один, собирая недостающие данные из них и фильтруя дубли строк. Учесть возможность забора из www. Ну и сигналить, если какие то из ...

    Прикладное ПО1 исполнитель
    Завершен
    7 лет назад
  • Разработать программное обеспечение для автоматизированной информационной системы "Учебная группа". База данных должна содержать сведения о студентах одной студенческой группы техникума, включая ФИО,пол,дату рождения,адрес проживания,телефон,сведения о родителях,рабочие телефоны родителей,номер студенческого билета, а также сведения об успеваемости ...

    Закрыт
    7 лет назад
  • С помощью библиотеки OpenCV (с++ или c#) необходимо написать программу выделения объектов на видео.  Камера имеет статичное положение.  Необходимо среди объектов определить человека и определить цвет его одежды. Нужно:  1) Определить, что это человек, а не собака или кошка.  2) ...

    Закрыт
    7 лет назад