@awsoft

Где взять материал для разработки 2D векторного редактора?

Работаю над проектом в Qt по проведению специализированных расчетов, в качестве исходных данных в расчетный модуль передается модель, состоящая из помещений, коридоров, проемов, лестниц (т.е. планировка здания). Вопрос связан с разработкой графического модуля, с помощью которого идет построение модели.

Реализацию данного модуля планирую выполнить в виде векторного 2D редактора, в котором элементы могут быть прямоугольниками и многоугольниками. В редакторе должна быть возможность выбирать элементы, перемещать, изменять размеры, прикреплять их друг к другу, поворачивать и т.д.

На просторах интернета не могу найти литературу и статьи по разработке подобного модуля, может кто подскажет куда мне смотреть, может есть простенький редактор с открытым кодом…
  • Вопрос задан
  • 555 просмотров
Решения вопроса 1
@awsoft Автор вопроса
Может быть кому-то будет интересно: для изучения того как устроен графический редактор изнутри, даже не простенький редактор, а целая CAD-система, можно ознакомится с программами с открытым исходным кодом QCAD (http://www.qcad.org) и LibreCAD (librecad.org/cms/home.html)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
vt4a2h
@vt4a2h
Senior software engineer (C++/Qt/boost)
Про простенькие редакторы не подскажу, но думаю, что легко сможете найти на гитхабе по соответствующему запросу.
В плане же работы с 2d графикой у Qt есть отилчная документация: https://doc.qt.io/qt-5/examples-graphicsview.html. Там же есть и вот этот пример: https://doc.qt.io/qt-5/qtwidgets-graphicsview-diag..., наверно это самое близкое к вашему вопросу.
Ответ написан
Комментировать
Rou1997
@Rou1997
Векторные редакторы есть для SVG, есть крупные проекты с открытым исходным кодом, и можно поискать WYSIWYG компоненты с открытом и закрытым кодом на C++, в принципе все они векторные и что-то найти можно, но несложно и написать самому, я писал на C#, Delphi, C++ Builder, вообще ничего сложного, сохранять лучше всего в XML-подобном формате, в памяти хранить в DOM, но если нет вложенности, то и обычная коллекция подойдет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы