Why is there no QTransform :: fromRotate?

Qt QTransform offers several more optimized ways to build a transformed / scaled QTransform matrix using these static methods:

Now I need a rotary transformation, and I thought it would be nice to have one too QTransform::fromRotate. But this does not exist.

In my case, I modify the existing transformation corresponding to the interaction with the mouse, for example, pan, zoom and rotate.

void MapDrawingItem::wheelEvent(QWheelEvent* event)
{
    //Moving the hovered point to the top left point on screen
    m_view_transform *= QTransform::fromTranslate(-event->posF().x(), -event->posF().y());

    //Apply transformations accordingly
    if((event->modifiers() & Qt::ControlModifier) == Qt::ControlModifier)
        m_view_transform *= QTransform().rotate(event->delta() / 30.);
    else
    {
        auto factor = qPow(1.001, event->delta());
        m_view_transform *= QTransform::fromScale(factor, factor);
    }

    //Move the hovered point back to the mouse cursor
    m_view_transform *= QTransform::fromTranslate(event->posF().x(), event->posF().y());

    emit signalViewTransformChanged(m_view_transform);
    update();
}

The code works correctly, but I would like to replace QTransform().rotate(...)withQTransform::fromRotate(...)

Why does this method no longer exist? I just can't imagine the Qt developers forgetting about it. Is there something that makes this impossible?

+4
1

, ( sin(3) cos(3)), .

, , . .

0

Source: https://habr.com/ru/post/1682734/


All Articles