我需要缩放多边形。
写下面的
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-- --- 135105 -
因此它也略有移动。
有没有办法从中心扩展? 例如,缩放后形状的原点应该是相同的点。 有内置的方式还是我必须再次计算所有点? 感谢
答案 0 :(得分:2)
目前,您正在应用“世界”坐标系中坐标的比例。这解释了你所看到的行为。您想要在本地或“对象”坐标系中应用它们。
要实现您想要的效果,您必须平移多边形,使其中心(或您所说的形状的原点)与坐标系的原点对齐(或者更确切地说是“变成”)。然后应用所需的比例,然后应用初始翻译的倒数。