Visualisierung mit SVG
Verfasst: 7. Juni 2010 22:48
Hallo zusammen,
im Augenblick arbeite ich daran, eine vorhandene Visualisierung (SCADA) Schritt für Schritt von MFC nach Qt zu migrieren.
Die bisherige Lösung basiert auf Bitmapgrafiken, die neue Version soll nun auch SVG unterstützen. Ich möchte gerne Graphicsview verwenden.
Im Endausbau soll z.B. Inkscape als Editor für die Prozessgrafiken verwendet werden.
Nun habe ich mir folgende Ansätze überlegt:
1. Die zu animierenden Elemente sind fester Bestandteil der SVG-Grafik. Es gibt nur ein Hintergrund-QGraphicsSvgItem, welches das Prozessbild mit allen zu animierenden Teilen (z.B. Motorsymbole) darstellt. Die SVG-Grafik wird durch Manipulation des DOM dynamisiert. Weitere Widgets (Kurven, Buttons etc.) sind separate QGraphicsItems. Informationen über Farbwechsel etc. könnten in der SVG-Datei selbst enthalten sein.
2. Die SVG-Grafik stellt nur den Hintergrund dar und die zu animierenden Elemente werden aus einer Bibliothek als separate QGraphicsSvgItems über dem Hintergrundbild platziert.
Welche Variante würdet Ihr bevorzugen?
Gibt es eine einfache Möglichkeit, anhand von Mauskoordinaten das darunterliegende SVG-Element (Path, Group etc.) zu identifizieren?
Ich hatte auch schon überlegt, die SVG-Grafik in eine Bitmap umzuwandeln, um die vorhandenen Dynamisierungsalgorithmen weiterverwenden zu können (Farbwechsel z.B. mit FloodFill etc.)
Über Hinweise, Tips und Anregungen würde ich mich sehr freuen.
im Augenblick arbeite ich daran, eine vorhandene Visualisierung (SCADA) Schritt für Schritt von MFC nach Qt zu migrieren.
Die bisherige Lösung basiert auf Bitmapgrafiken, die neue Version soll nun auch SVG unterstützen. Ich möchte gerne Graphicsview verwenden.
Im Endausbau soll z.B. Inkscape als Editor für die Prozessgrafiken verwendet werden.
Nun habe ich mir folgende Ansätze überlegt:
1. Die zu animierenden Elemente sind fester Bestandteil der SVG-Grafik. Es gibt nur ein Hintergrund-QGraphicsSvgItem, welches das Prozessbild mit allen zu animierenden Teilen (z.B. Motorsymbole) darstellt. Die SVG-Grafik wird durch Manipulation des DOM dynamisiert. Weitere Widgets (Kurven, Buttons etc.) sind separate QGraphicsItems. Informationen über Farbwechsel etc. könnten in der SVG-Datei selbst enthalten sein.
2. Die SVG-Grafik stellt nur den Hintergrund dar und die zu animierenden Elemente werden aus einer Bibliothek als separate QGraphicsSvgItems über dem Hintergrundbild platziert.
Welche Variante würdet Ihr bevorzugen?
Gibt es eine einfache Möglichkeit, anhand von Mauskoordinaten das darunterliegende SVG-Element (Path, Group etc.) zu identifizieren?
Ich hatte auch schon überlegt, die SVG-Grafik in eine Bitmap umzuwandeln, um die vorhandenen Dynamisierungsalgorithmen weiterverwenden zu können (Farbwechsel z.B. mit FloodFill etc.)
Über Hinweise, Tips und Anregungen würde ich mich sehr freuen.