Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: как узнать координаты пикселе
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Модель/Представление
Виталий
привет всем! вот такой вопрос ...вот например нарисовал линию m_scene.addLine(420, 285, 250, 300); как узнать координаты пикселев, которая использовала функция addLine() для построения линии?
Алексей1153
функция addLine() будет использовать именно указанные координаты (относительно текущей системы координат родительского "контейнера", обычно - сцены)
lanz
Мне кажется тут вопрос в том, чтобы получить список пикселей (x,y, color). Но могу и ошибаться.
Виталий
да, да. мне это и нужно ...
lanz
Скорее всего там что то вроде алгоритма брезенхэма. Только учтите, что нужно помножить все это на ширину кисти, тип линии, сглаживание и блендинг. Так что не думаю что есть простой способ узнать.
Если вы хотите проверять позицию курсора мыши, то вам проще будет переопределить mousePress/ReleaseEvent.
Если сделать маску, то рисуйте например QPainter::CompositionMode_DestinationOut сначала opaque прямоугольник, а потом прозрачной кистью линию, получится маска(не проверял, мысленный эксперимент :lol:) .
В общем задача сложная, возможно вашу задачу можно решить по другому?
iReset
Цитата(Виталий @ 30.4.2013, 21:34) *
как узнать координаты пикселев...

А что, если для полученной линии установить точность ограничивающего региона с помощью setBoundingRegionGranularity(), равной 1, затем получить этот ограничивающий регион с помощью boundingRegion(), а затем перебрать все точки сцены (или ограничивающего прямоугольника) и посмотреть, входят ли они в регион с помощью QRegion::contains(QPoint).
lanz
Цитата
А что, если для полученной линии установить точность ограничивающего региона с помощью setBoundingRegionGranularity(), равной 1, затем получить этот ограничивающий регион с помощью boundingRegion(), а затем перебрать все точки сцены (или ограничивающего прямоугольника) и посмотреть, входят ли они в регион с помощью QRegion::contains(QPoint).

Круть! :clapping:
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.