Method Mirror now should work.

--HG--
branch : feature
This commit is contained in:
dismine 2015-01-16 15:20:15 +02:00
parent ab2b894d69
commit 040b9e607b

View File

@ -153,12 +153,16 @@ void VLayoutDetail::Mirror(const QLineF &edge)
return; return;
} }
QLineF axis = QLineF(edge.x1(), edge.y1(), 100, edge.y2()); // Ox axis const QLineF axis = QLineF(edge.x1(), edge.y1(), 100, edge.y2()); // Ox axis
qreal angle = edge.angleTo(axis); const qreal angle = edge.angleTo(axis);
Rotate(edge.p1(), -angle); QMatrix m;
d->matrix *= d->matrix.scale(d->matrix.m11()*-1, d->matrix.m22()); m.translate(edge.p2().x(), edge.p2().y());
Rotate(edge.p1(), 360 + angle); m.rotate(-angle);
m.scale(m.m11(), m.m22()*-1);
m.rotate(360 - (-angle));
m.translate(-edge.p2().x(), -edge.p2().y());
d->matrix *= m;
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------
@ -323,7 +327,7 @@ QVector<QPointF> VLayoutDetail::Map(const QVector<QPointF> &points) const
p.append(d->matrix.map(points.at(i))); p.append(d->matrix.map(points.at(i)));
} }
if (d->matrix.m11() < 0) if (d->matrix.m22() < 0)
{ {
QList<QPointF> list = p.toList(); QList<QPointF> list = p.toList();
for(int k=0, s=list.size(), max=(s/2); k<max; k++) for(int k=0, s=list.size(), max=(s/2); k<max; k++)