我需要缩放一个多边形。
编写以下代码
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--
因此,它也会稍微移动一下。
有没有从中心开始缩放的方法?例如,缩放后形状的原点应该是相同的点。有没有一种内置的方法,或者我必须重新计算所有的点来缩放?谢谢
发布于 2011-08-01 22:47:28
当前,您正在相对于"World“坐标系中的坐标应用缩放。这就解释了你所看到的行为。您希望在局部或“对象”坐标系中应用它们。
为了达到你想要的效果,你必须平移多边形,使它的中心(或者你所说的形状的原点)与坐标系的原点对齐(或者更确切地说是“成为”原点)。然后应用所需的比例,然后应用初始平移的反转。
https://stackoverflow.com/questions/6900006
复制相似问题