Vektorielle Verformung

Zeigt, wie die Elemente einer QPainterPath manipuliert werden können.

Wir definieren ein Vektordeformationsfeld in Form einer Linse und wenden es auf alle Punkte in einem Pfad an. Das bedeutet, dass auf dem Bildschirm keine Pixelmanipulationen, sondern modifizierte Vektordarstellungen der Glyphen selbst gerendert werden. Dies ist an der hohen Qualität der Antialiasing-Kanten der verformten Glyphen zu erkennen.

Um einen ziemlich komplexen Pfad zu erhalten, erlauben wir dem Benutzer, Text einzugeben und diesen in Pfade umzuwandeln. Dies geschieht mit der Funktion QPainterPath::addText().

Die Linse wird mit einem einzigen Aufruf von QPainter::drawEllipse() gezeichnet, wobei eine QRadialGradient verwendet wird, um sie mit einer speziellen Farbtabelle zu füllen, die den Effekt der Sonnenreflexion und einen Schlagschatten erzeugt. Die Linse wird als Pixmap zwischengespeichert, um die Leistung zu verbessern.

Beispielprojekt @ code.qt.io

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.