Разработка приложения САПР - PullRequest
       16

Разработка приложения САПР

0 голосов
/ 23 февраля 2010

Я разрабатываю приложение САПР, используя вариацию архитектуры MVC. Моя модель и вид независимы друг от друга. Они общаются через контроллер. Моя проблема в том, что если мне нужно нарисовать объект (скажем, линию или полилинию), мне нужно количество точек ввода. Каков был бы лучший способ получить очки? Все события из представления подписываются контроллером, и контроллер должен сохранять точки, затем генерировать линию или полилинию и, наконец, добавить эту линию для просмотра. Но я не знаю, как эффективно выполнять захват точек мыши, потому что у каждого объекта будет разное количество входов и разные алгоритмы проверки входов. Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 24 февраля 2010

Я работал в САПР-приложении 3 года назад, и вот несколько советов, которые я запомнил, мы сделали (Кстати: приложение бесплатное, вы можете скачать его, зарегистрировать свою копию, и использовать функции в редакторе фермы) :

1- Вы можете добавить кнопки для рисования фигур, например: кнопку для линии, кнопку для полилинии, прямоугольника и т. Д.

2- Создайте переменную, которая будет содержать текущее состояние вашего приложения (может быть перечислением): готово, точка рисования, линия рисования, полилиния рисования, круг рисования и т. Д.

3- Когда пользователь нажимает кнопку рисования, система переходит в соответствующее состояние из упомянутых выше.

4 - система возвращается в «режим готовности» после завершения рисования, которое может быть автоматически определено по ожидаемому количеству точек (1 для точки, 2 для линии, 3 для эллипса и т. Д.) Или когда пользователь нажимает клавишу Esc или щелкает правой кнопкой мыши область рисования (если ожидаемое количество точек неизвестно, например: полилиния). Вы также можете закончить рисование ломаной линии, если пользователь повторно щелкнул первую точку и нарисовал 3+ точки.

5- Система может отменить текущую операцию рисования, если пользователь завершает операцию до завершения числа ожидаемых точек.

...

0 голосов
/ 23 февраля 2010

при разработке программного обеспечения САПР вы должны думать не только о гибкости и динамичности, но и о скорости. Вы должны использовать некоторый класс-обертку, который работает как очень тонкий слой между вами и драйвером оборудования, он должен возвращать такие вещи, как пиксельный массив экрана, текущий bpp и т. Д. ... Вот как я это сделаю ( и сделал на самом деле). Теперь, в C #, поскольку это язык .NET, я не уверен, что вы можете сделать это ниже, но у вас все еще может быть некоторый обработчик между контроллером и объектом пера, не так ли?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...