Wohlstand
@Wohlstand
Инженер-программист С++

Как нарисовать QGraphicsRectItem с дыркой?

Здравствуйте, у меня возник небольшой вопрос:
Есть гигантский прямоугольник QGraphicsRectItem, растянутый на ширину QGraphicsScene.

Как мне вычесть из него другой прямоугольник, чтобы в большом получилось прозрачное окно, примерно вот так:
square_hole.png

Возможно нарисовать частями, примерно так:
square_hole_parts.png
но это не оптимально - мы рисуем четыре фигуры, а в первом случае две, вторая из которых - вычитающая.

Но хотя есть ещё вариант нарисовать вот такой полином, чтобы создать ощущение квадрата с дыркой, но тогда будет одна единственная фигура:
square_hole_polynom.png
Но тоже не оптимально, слишком много чисел будет, чтобы менять размер и позицию окна-дырки.

Возможно ли реализовать первый вариант штатными средствами? (Qt 4.8)
Хотя, третий вариант более-менее подходит, но если дописать функцию для комфортного изменения размера.

Зачем мне это нужно?
Создаю редактор игровых уровней, карта уровня делится на изолированные друг от друга секции, но игра спроектирована так, что все секции размещены в едином координатном пространстве.

Я хочу сделать так, что при изменениях переключателя секций, окно-дырка перемещалось и охватывало нужную мне секцию, одновременно со сменой позиции камеры на координатной плоскости. Позиция камеры уже реализована, а вот дырявый квадрат пока не могу нигде найти.
  • Вопрос задан
  • 2787 просмотров
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 1
@xandox
Нарисуй сначала большой, потом тот который поменьше другим цветом
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы