2012-05-17 2 views
1

Каков наилучший способ создания строки (QGraphicsLineItem), которая начинается в какой-то момент на сцене и продолжается до бесконечности под некоторым углом.Как создать бесконечно длинную строку

Способ, которым я сейчас это делаю, вычисляя, пересекали линию вид и рисовали сегмент линии.

Есть ли лучший способ?

Могу ли я, например, установить длину линий на некоторое массивное число?

+0

«Могу ли я, например, установить длину линий на некоторое массивное число?» - вот что я буду делать. Даже если число очень велико, Qt должен иметь возможность легко оптимизировать эту задачу для одной строки. –

+0

Вы хотите быть графическим элементом, который большой или просто нарисовать его бесконечно? Для последнего вы можете нарисовать его вручную. – leemes

ответ

0

Вы можете определить функции paint() и shape(), чтобы они всегда использовали все пространство, доступное и необходимое внутри сцены, то есть внутри видимой части qgraphicsview.

Рекомендации:

  • Изучить функции отображения для QGraphicsView, QGraphicsScene и QGraphicsItem (mapToScene, mapToItem, mapToView или что-то в этом роде)
  • Определите форму() и краски() функции, как если бы ваш (с использованием вышеперечисленных функций)

Итак, как только пользователь перемещает свое представление, перекраска будет проверять пространство, используемое qgraphicsview и нарисуйте точно так долго. Создается иллюзия, что линия идет дальше и дальше.

Смежные вопросы