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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Графические артефакты при рисовании на QImage  (Прочитано 2505 раз)
Pritcher
Гость
« : Март 31, 2015, 17:15 »

Привет!
Рисую на Qimage линию с размером пера >= 2 и получаю следующую картину:


вот код, с помощью которого происходит рисование:
Код:
QPainter painter( getImage() );
painter.setPen( QPen( getLeftColor(),
7,
Qt::SolidLine,
Qt::SquareCap,
Qt::MiterJoin )
);
if ( _startPoint == _endPoint )
painter.drawPoint( _endPoint );
else
painter.drawLine( _startPoint, _endPoint );
painter.end();

_startPoint и _endPoint - объекты класса QPointF
Рисование начинается по нажатию мыши.

Отчего могут появляться выступы площадью в 1 пиксель?
« Последнее редактирование: Апрель 04, 2015, 05:41 от Pritcher » Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Март 31, 2015, 17:24 »

Поиграйтесь с QPainter::setRenderHint
Записан

Pritcher
Гость
« Ответ #2 : Март 31, 2015, 17:42 »

Поиграйтесь с QPainter::setRenderHint

Никаких изменений.

В целом, я хотел добиться "рисования квадратом". Т.е. линии в таком случае должны быть заданной толщины, но без таких вот "отростков", что представлены на пикче.
Полагаю, что эти артефакты вылезают из-за стилей пера , в данном случае Qt::SquareCap и Qt::MiterJoin, и вылезают они по вине троллей и общей реализации.

Хотелось найти что-то в документации для достижения желаемого результата, но похоже придется изобретать велосипед...
« Последнее редактирование: Март 31, 2015, 19:53 от Pritcher » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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