QGraphicsItem::sceneBoundingRect() - QGraphicsItem::boundingRect()的结果是什么
时间: 2024-01-24 21:25:37 浏览: 20
QGraphicsItem::boundingRect() 返回项在其局部坐标系中的边界矩形,而 QGraphicsItem::sceneBoundingRect() 返回项在场景坐标系中的边界矩形。因此,两者的结果可能不同。sceneBoundingRect() 的结果是 boundingRect() 通过项的 transform() 转换后的 scene 中的矩形。如果没有 transform(),则两者的结果相同。
相关问题
QGraphicsItem::sceneBoundingRect()与QGraphicsItem::boundingRect()的区别
QGraphicsItem::boundingRect()方法返回项的本地坐标系下的边界矩形。而QGraphicsItem::sceneBoundingRect()方法返回项在场景坐标系下的边界矩形。也就是说,QGraphicsItem::boundingRect()方法返回的矩形是相对于项自身的,而QGraphicsItem::sceneBoundingRect()方法返回的矩形是相对于场景的。
通常情况下,当我们需要获取项的边界矩形时,应该使用QGraphicsItem::sceneBoundingRect()方法,因为它考虑了项的变换矩阵以及所在组的变换矩阵,可以得到准确的边界矩形。而QGraphicsItem::boundingRect()方法只返回项自身的边界矩形,不考虑变换矩阵和所在组的影响,因此不一定准确。
QGraphicsItem::sceneBoundingRect() 减去QGraphicsItem::boundingRect()的结果是什么
QGraphicsItem::sceneBoundingRect() 减去 QGraphicsItem::boundingRect() 的结果是项在场景坐标系中的边界矩形与项在其局部坐标系中的边界矩形之间的差异。如果项没有被旋转、缩放或移动,则该差异将为零。否则,该差异将反映项的变换。通常,这个差异用于计算项的阴影或边框的绘制区域。