суббота, 16 января 2010 г.

Qt и QPainter::drawPoint

В данный момент работаю с графикой в Qt. Нужно было рисовать точки.
В книге нашел примерно такой пример отрисовки точки (пример упрощу до рисования одной точки)
QPainter painter(this);
painter.setPen(QPen(Qt:black, 3));
painter.drawPoint(QPointf(12, 12));
В данном примере должна рисоваться точка с координатами (x = 12, y = 12). Но должна, да не обязана, как выяснилось. После некоторого время непонимания, решил попробовать поменять толщину пера на 1px.
painter.setPen(QPen(Qt:black, 1));
И точки начали рисоваться. Вот такая вот штука. Хотя здесь один разработчик говорит, что точка всегда рисуется толщиной в 1 пиксель, несмотря на толщину пера.

2 комментария :

vadun комментирует...

Насколько я помню, pen толщиной 1px особенный в том смысле, что на него не действуют трансформации, заданные в painterе (setTransform и ему подобные).
Если, допустим, в painterе стоит scale в 0.001 раз, то точка в 3px вполне может выродится в 0px.

Руслан комментирует...

2vadun
Забавно, но, в принципе, логично.