2

我需要缩放一个多边形。

写下

Qt代码:

QPolygonF qpf=QPolygonF(QPolygon(4,points));
QTransform trans;
trans=trans.scale(1.5,1.5);
QPolygonF qpf2=trans.map(qpf);
path.addPolygon(qpf2);

对于要点:

Qt代码:

  static const int points[8] = {
    10, 80,
    20, 10,
    80, 30,
    90, 70
    };

它生成---15,120-- ---30,15-- ---120,45-- ---135,105--

因此它也会轻微移动。

有没有办法从中心缩放?例如,缩放后形状的原点应该是同一点。是否有内置方法或者我必须再次计算所有点以进行缩放?谢谢

4

1 回答 1

3

目前,您正在根据“世界”坐标系中的坐标应用比例。这解释了您所看到的行为。您想在本地或“对象”坐标系中应用它们。

为了实现您想要的效果,您必须平移多边形,使其中心(或您所说的形状的原点)与(或者更确切地说“成为”)坐标系的原点对齐。然后你应用你想要的比例,然后应用你初始翻译的倒数。

于 2011-08-01T14:47:27.607 回答