Матрица Qt Transform

Мне нужно манипулировать элементами QML через QMatrix4x4, чтобы применить некоторые перспективные преобразования. По сути, я определил класс Transform для использования объекта QMatrix4x4 в качестве аргумента для поля преобразования элемента QML.

class Transform : public QQuickTransform{
 Q_OBJECT

 Q_PROPERTY(QMatrix4x4 matrix READ matrix WRITE setMatrix NOTIFY matrixChanged)

 public:
 explicit Transform(QQuickItem *parent = 0);

 QMatrix4x4 matrix() const;
 void setMatrix(QMatrix4x4 matrix);

 virtual void applyTo(QMatrix4x4 *matrix) const;

 signals:
         void matrixChanged();

 private:
         QMatrix4x4 m_matrix;

};

где

void Transform::applyTo(QMatrix4x4 *matrix) const {
      *matrix *= m_matrix;
       matrix->optimize();
}

Однако, похоже, что QML не «определяет» матрицу перспективы классическим способом. Я сосредоточил свои тесты в основном на вращениях (http://en.wikipedia.org/wiki/Rotation_matrix). Допустим, у меня есть элемент QML в x: 200, y: 200, и я применяю преобразование

transform: [Transform{matrix:mytra},Rotation {  axis { x: 1; y: 0; z: 0 } angle: 90 } ]

где mytra - это единичная матрица. Метод applyTo () получает матрицу (вращения)

     1    -0.195312         0       200         
     0    -0.195312         0       200         
     0            0         1         0         
     0 -0.000976562         0         1  

но "классический" должен быть

     1    0         0       200         
     0    0        -1       200         
     0    1         0         0         
     0    0         0         1  

Я не понимаю, откуда эта матрица и как адаптировать мою матрицу к qt. Спасибо за помощь.

Ответы на вопрос(1)

Ваш ответ на вопрос