Ich habe ein Polygon:Qt 5.5, wie Polygon um Position drehen
QPolygon plyNeedle;
plyNeedle << QPoint(ptOrigin.x() - intNeedleHalfWidth, ptOrigin.y())
<< QPoint(ptOrigin.x(), ptOrigin.y() + intNeedleHalfWidth)
<< QPoint(ptOrigin.x() + intRadius - intNeedleHalfWidth, ptOrigin.y())
<< QPoint(ptOrigin.x(), ptOrigin.y() - intNeedleHalfWidth);
ptOrigin ist vom Typ QPoint und definiert den Punkt drehen. intNeedleHalfWidth ist eine Ganzzahl und hat den Wert 4. intRadius ist eine Ganzzahl und definiert die Länge der Nadel.
Ich möchte das Polygon um den 2. Index des Polygons drehen, aber wie?
(Edit) ... Beim Versuch Antwort vorgeschlagen von Anton Savin, vor und Transformation:
ptOrigin (40, 250)
plyNeedle (36,250),(40,254),(287,250),(40,246)
Nach der Durchführung:
plyNeedle = QTransform().translate(-ptOrigin.x(), -ptOrigin.y())
.rotate(45)
.translate(ptOrigin.x(), ptOrigin.y())
.map(plyNeedle);
plyNeedle wird dann an den QPainter hinzugefügt:
QBrush brshArrow;
brshArrow.setColor(mcpszARGBneedle);
brshArrow.setStyle(Qt::SolidPattern);
objOffscrPainter.setPen(mcpszARGBneedle);
QPainterPath path;
path.addPolygon(plyNeedle);
objOffscrPainter.drawPolygon(plyNeedle);
objOffscrPainter.fillPath(path, brshArrow);
Es ist nichts gezeigt, zur Untersuchung von plyNeedle enthält:
plyNeedle (-340,157),(-340,163),(-162,335),(-334,157)
nicht sicher, was passiert ist, aber die Nadel vollständig verschwunden, bei der Inspektion mit Debugger kann ich die X-Koordinaten sieht massiv negativ sind ... Ich werde den Original-Beitrag bearbeiten, um die Ergebnisse aufzunehmen. – SPlatten