Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. QGraphicsItem: Transformation bug
QtWS25 Last Chance

QGraphicsItem: Transformation bug

Scheduled Pinned Locked Moved General and Desktop
2 Posts 2 Posters 866 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    ccbaci
    wrote on last edited by
    #1

    I am having a rectangle that is used within a QGraphicsItem. Item is added to a scene and it has a pre-defined transformation, so that it maps the rectangle correctly. It was so far so good:

    @QRectF rect;
    QTransform transform;
    QGraphicsPolygonItem box;

    box.setTransform(transform);
    box.setPolygon(rect);

    qDebug() << rect;
    qDebug() << transform;
    qDebug() << transform.map(rect.topLeft());
    qDebug() << transform.map(rect.topRight());
    qDebug() << transform.map(rect.bottomRight());
    qDebug() << transform.map(rect.bottomLeft());
    qDebug() << transform.map(rect);
    qDebug() << box.polygon();
    qDebug() << box.scenePos();@

    outputs:

    @QRectF(34.2629,5.75334 40.4797x55.5691)
    QTransform(type=TxProject, 11=8.39145 12=3.651e-16 13=-3.79358e-18 21=-11.232 22=1.24517 23=-0.00673223 31=731.81 32=58.3479 33=0.684533)
    QPointF(1478.33, 101.443)
    QPointF(2004.32, 101.443)
    QPointF(2466.86, 495.792)
    QPointF(1216.62, 495.792)
    QPolygonF(QPointF(1478.33, 101.443) QPointF(2004.32, 101.443) QPointF(2466.86, 495.792) QPointF(1216.62, 495.792) QPointF(1478.33, 101.443) )
    QPolygonF(QPointF(34.2629, 5.75334) QPointF(74.7427, 5.75334) QPointF(74.7427, 61.3225) QPointF(34.2629, 61.3225) QPointF(34.2629, 5.75334) )
    QPointF(1069.06, 85.2375)@

    as expected; everything works fine; both vertices and the item itself are transformed right, that I can check all with map function. This worked fine for at least 40 different transforms.

    However, for just another transformation matrix I encountered this interesting result:

    @QRectF(29.8193,9.86656 29.6347x43.7413)
    QTransform(type=TxProject, 11=-4.51027 12=2.57144e-16 13=-1.00432e-19 21=7.88867 22=0.184078 23=0.00360371 31=-511.257 32=-69.1552 33=-0.353853)
    QPointF(1784.23, 211.56)
    QPointF(2204.16, 211.56)
    QPointF(2218.99, 369.009)
    QPointF(1387.07, 369.009)
    QPolygonF(QPointF(0, 0) )
    QPolygonF(QPointF(29.8193, 9.86656) QPointF(59.454, 9.86656) QPointF(59.454, 53.6079) QPointF(29.8193, 53.6079) QPointF(29.8193, 9.86656) )
    QPointF(1444.83, 195.435)@

    the vertices are transformed successfully; but the rect item couldn't. It is showing (0, 0) for the transformation.

    I thought this must be a bug in the framework, as it transforms a point fine but it just couldn't transform the items (I am also having lots of ellipses, rects couldn't be transformed). But when I try to reproduce I couldn't; it happens only with this matrix.

    Since map() doesnt work, item.setTransform() - which I suppose using map() - also doesnt work.

    For a clear vision I attached the second matrix (transposed) here: !http://i.imgur.com/7SfJHbU.png()!

    What am I doing wrong here ? Precision bug ? 32-bit issues ?

    1 Reply Last reply
    0
    • A Offline
      A Offline
      Asperamanca
      wrote on last edited by
      #2

      This looks to be purely an issue of QTransform. Putting QGraphicsItem in the title is a bit misleading (and might have caused people not to read this thread, because they feel they cannot contribute to anything QGraphicsItem related).

      Anyway, it's hard to tell what's going on at a distance. What system are you testing on? Which Qt version are you using? The best way to find out what's going on quickly would probably be to debug into the map() function where it goes wrong.

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved