Russian Qt Forum
Октябрь 02, 2024, 23:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt редактирование многоугольников  (Прочитано 2134 раз)
qwyllum
Гость
« : Май 17, 2013, 23:32 »

Доброго времени суток всем! С-но, встала передо мной небольшая задачка - знакомый попросил написать примитивный редактор уровней. Суть в том, что уровни состоят из многоугольников, которые в дальнейшем будут затекстурированы. Есно задача редактора создавать многоугольники, редактировать и сохранять их координаты в файл. Начал я копать в данном направлении. Вот задача:
1. В редакторе можно создать фигуру(по умолчанию 3,4,5-угольник)
2. Есть режим редактирования объекта и режим редактирования вершин. Выбирается мышью.
2. В режиме редактирования вершин, каждая вершина фигуры доступна для перемещения, после чего фигура изменяется(можно не в реальном времени, а после отпускания мыши)
3. В режиме редактирования объекта, его можно перемещать или вращать
4. В идеале, хотелось бы иметь возможность добавления новых вершин

А теперь вопрос, как это реализовать в теории? На каком уровне работать с объектами?
Допустим, отдельную вершину можно сделать классом, наследуемым от QGraphicsItem. Переопределить метод paint(), добавить возможность передвижения мыши. Но как сделать, чтобы все вершины одного элемента соединялись линиями? И как сделать, чтобы в режиме редактирования объекта осуществлялось именно перемещение-вращение всего многоугольника?
Или же может стоит сделать класс Многоугольника, у которого есть динамический список вершин?

Подскажите плз, как бы вы это реализовали в теории?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Май 18, 2013, 10:42 »

Ну вершину делать айтемом - явный перебор. Напрашивается унаследоваться от QGraphicsPolygonItem а поверх рисовать (жирные) точки.

Вообще задача типа "чем дальше в лес - тем больше дров". Выглядит вроде просто, но по существу это 2D редактор, и аппетит пользователя нарастает очень быстро - больше и больше ф-ционала нужно, "это абсолютно необходимо". Начинается давление со стороны юзера, типа "без этой фичи Ваш редактор совершенно unusable!". В свое время я соскочил когда заставляли добавить Безье (с коленом)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 22.