Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: BaltikS от Март 05, 2009, 12:01



Название: Объясните смысл методов QPainter-а
Отправлено: BaltikS от Март 05, 2009, 12:01
У меня собственно два вопроса к знатокам:
1) Чем отличаются два метода у QPainter
Код:
const QTransform & transform () const 
Ответ по assistant-у
Код:
Returns the world transformation matrix
и метод
Код:
const QTransform & QPainter::worldTransform () const 
по ассистенту
Код:
Returns the world transformation matrix
... И действительно они возвращают одни и те же координаты. Спрашиваются зачем нужен второй если есть первый или наоборот? :)
2) Я рисую на QGraphicsItem painter-ом в координатах итема. При этом использую rotate и translate painter-а..... При попытки перевести координаты вращаемой точки в item-е функцией painter->transform().map(QPoint(0,0)) возвращается координаты, то ли viewport-a, то ли сцены... Ещё толком не понял. Вопрос почему? Если я рисую в относительных координатах, почему же мне возвращаются подозреваю абсолютные всего viewport-a? Кто нибудь сталкивался с этим?


Название: Re: Объясните смысл методов QPainter-а
Отправлено: BRE от Март 05, 2009, 12:19
1) Чем отличаются два метода у QPainter
Код:
const QTransform & transform () const 
Ответ по assistant-у
Код:
Returns the world transformation matrix
и метод
Код:
const QTransform & QPainter::worldTransform () const 
по ассистенту
Код:
Returns the world transformation matrix
... И действительно они возвращают одни и те же координаты. Спрашиваются зачем нужен второй если есть первый или наоборот? :)
Ничем.
Цитировать
void QPainter::setTransform ( const QTransform & transform, bool combine = false )
Sets the world transformation matrix. If combine is true, the specified transform is combined with the current matrix; otherwise it replaces the current matrix.
This function has been added for compatibility with setMatrix(), but as with setMatrix() the preferred method of setting a transformation on the painter is through setWorldTransform().
This function was introduced in Qt 4.3.

Qt 4.4.3:
Код
C++ (Qt)
void QPainter::setTransform(const QTransform &transform, bool combine )
{
   setWorldTransform(transform, combine);
}