Название: QPainter, QTransform и координаты Отправлено: alammer от Октябрь 29, 2014, 11:56 Здравствуйте! Объясните один момент:)
Qt 4.8.1, Ubuntu 12.04 Мне надо нарисовать X кружков, а потом соединить их линиями по некоторму алгоритму. Для рисования окружностей я использую painter.rotate(). А для того, чтобы потом иметь их координаты в общей системе влепил костыль на QTransform. Про QTransform прочитал вскользь в хелпах. Костыль внезапно заработал почти с 1 раза, но я теперь не понимаю как:) Вот кусок кода: Код: QPainter painter(this); получается, что QTransform::map() преобразовывает текущие коор-ты матрицы сразу в начальные коор-ты (т.е. в систему с центром painter.translate(wid / 2, hei / 2); ), но в хелпе ничего на эту тему не нашел. Чего я не понимаю? Название: Re: QPainter, QTransform и координаты Отправлено: gil9red от Октябрь 29, 2014, 12:31 Для рисования кружков, окружностей и т.п. у QPainter'а есть замечательный метод drawEllipse().
Название: Re: QPainter, QTransform и координаты Отправлено: vulko от Октябрь 29, 2014, 12:46 Не нужно портить матрицу.
Используй painter.save() //опасный код! =) painter.restore() когда применяешь трансформации к канве. П.С. Почитай про QGraphicsScene и QGraphicsItem, возможно с ними будет куда проще. |