Ich experimentiere mit Möglichkeiten, einen sinusförmigen Graphen zu zeichnen.
Mein Widget erwartet nur, dass es in einigen willkürlichen Datenpunkten übergeben wird. Ich muss diese Datenpunkte an eine sinusförmige Linienkurve anpassen:
Bisher habe ich einige Methoden mit QPainterPath ausprobiert.
Nachdem ich gegoogelt hatte, stieß ich auf einige Forenbeiträge, die Qwt für die Kurvendarstellung verwendeten. Es wäre großartig, wenn ich Qwt verwenden könnte, aber es ist keine Option, da ich nur Qt verwenden kann.
Hat jemand hilfreiches Feedback / Vorschläge?
Ich mache derzeit eine sehr ähnliche Sache mit dem Bode-Sweep eines parametrischen EQ (eine lange Linie mit mehreren Sweep-Kurven). So wie ich es mache (Pseudo-Stil):
%Vor% Die Kombination der Aufrufe von setRenderHint
und das Zeichnen von Zeilen mit QPointF
(d. h. zwei qreal
) anstelle von QPoint
(zwei int
) macht die Zeile sehr glatt.
Wir verwenden dies auf einem SBC, auf dem Ubuntu läuft, und erhalten für einen 600x300px-Graphen ein Zeitlimit (einschließlich der komplexen Mathematik, um die Punkte zu erhalten) von ~ 80 ms. Erste Tests zeigen, dass OpenGL-Rendering dies auf ~ 8ms reduziert (die prozessorintensive Aufgabe ist eindeutig die Malen mit Antialiasing), also wenn du das kannst, denke ich, dass diese Lösung für dich funktionieren wird.
Tags und Links qt