【问题标题】:QGraphicsPolygonItem scale from top leftQGraphicsPolygonItem 从左上角缩放
【发布时间】:2011-12-15 03:36:01
【问题描述】:

我有一个关于 QGraphicsPolygonItem 缩放的问题。

我有多边形(在 QGraphicsPolygonItem 内):

QPolygonF p1; 
p1 << QPointF(-4, 32) << QPointF(-4, -32) << QPointF(4, -32) << QPointF(4, 32);
//or
//p1 << QPointF(0, 0) << QPointF(8, 0) << QPointF(8, 64) << QPointF(0, 64);
//whatever, they both doesn't work correctly.

然后,我尝试缩放它( setScale(2) ),多边形从中心点开始缩放,而不是从左上角开始。我已阅读有关 Qt 缩放和原点的文档,但没有效果。 出于测试目的,我已将多边形更改为矩形 - 比例正常。

如何从左上角缩放多边形?

无比例(红色多边形,黑色矩形):
(来源:sources.ru

使用比例 x2:
(来源:sources.ru

感谢您的帮助

【问题讨论】:

    标签: c++ qt scaling qgraphicsitem


    【解决方案1】:

    你需要的是setTransformOriginPoint

    在项目坐标中设置变换的原点。

    【讨论】:

    • setTransformOriginPoint 不能解决这个问题,因为它只是改变转换的起点(从中心到顶部,左侧)。正如您在图片 2(Scale x2)上看到的那样,问题在于缩放后的多边形重叠。为了防止这种情况需要使用翻译(可能)。缩放后我需要:1. 缩放多边形,2. 缩放它的 X、Y 位置(如图片 2 上的黑色矩形)。
    猜你喜欢
    • 2014-07-04
    • 1970-01-01
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 2015-04-27
    • 1970-01-01
    相关资源
    最近更新 更多