From 1481a33326fca265e2066e82335b5d85981ecacd Mon Sep 17 00:00:00 2001 From: Gitea Date: Wed, 18 Sep 2019 00:04:50 +0200 Subject: [PATCH] Scales using QPainter::scale --- osciwidget.cpp | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/osciwidget.cpp b/osciwidget.cpp index e8d7bf4..9ec2263 100644 --- a/osciwidget.cpp +++ b/osciwidget.cpp @@ -90,20 +90,15 @@ void OsciWidget::updateFrameBuffer() painter.drawRect(m_pixmap.rect()); // drawing new lines ontop + painter.translate(m_pixmap.width()/2, m_pixmap.height()/2); + painter.scale(m_factor * m_pixmap.width() / 2.0, m_factor * m_pixmap.height() / 2.0); + painter.setCompositionMode(QPainter::CompositionMode_SourceOver); + QPen pen; + pen.setCosmetic(true); // let pen be scale invariant pen.setWidth(2); pen.setColor(QColor(0, 255, 0)); painter.setPen(pen); - painter.translate(m_pixmap.width()/2, m_pixmap.height()/2); - painter.setCompositionMode(QPainter::CompositionMode_Plus); - - const auto pointToCoordinates = [width=m_pixmap.width()/2,height=m_pixmap.height()/2,factor=m_factor](const QPointF &point) - { - return QPoint{ - int(point.x() * factor * width), - int(point.y() * factor * height) - }; - }; for (const auto &i : m_buffer) { @@ -116,7 +111,7 @@ void OsciWidget::updateFrameBuffer() painter.setOpacity(std::min(1.0, 1. / ((line.length() * m_lightspeed) + 1))); - painter.drawLine(pointToCoordinates(m_lastPoint), pointToCoordinates(p)); + painter.drawLine(m_lastPoint, p); m_lastPoint = p; }