Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi FMX: Schnelles zeichnen gesucht (https://www.delphipraxis.net/190966-fmx-schnelles-zeichnen-gesucht.html)

Daniel 25. Nov 2016 09:07

AW: FMX: Schnelles zeichnen gesucht
 
Ist die Verwendung von FMX Pflicht?
Ich werde hier mit 60 Messwerten pro Sekunde konfrontiert, die ich wegspeichern und - in Intervallen - verarbeiten und zeichnen muss, am Ende dann auch die Daten von 6-12 Stunden. Ich bin vom VCL-TBitmap auf die Graphics32-Bibliothek umgestiegen und damit war das Thema "Grafikausgabe" erledigt. Das Zeichnen erfolgt schnell genug, dass ich mich wieder in Ruhe dem verrechnen/glätten/eindampfen der Daten widmen kann.

Sherlock 25. Nov 2016 09:41

AW: FMX: Schnelles zeichnen gesucht
 
Leider ist FMX für mich Pflicht, weil ich auf iDevices, Windows, Androiden und MacOS laufen muss...äh, also mein Programm. Also klassischer FMX Use Case :D

Ich habe gestern Nachmittag meine Datenstruktur umgebaut, bin noch am Testen. Eine Beschleunigung ist auf jeden Fall festzustellen. Schaue jetzt noch nach andern Zeichenstrategien.

Sherlock

Delphi-Laie 25. Nov 2016 14:21

AW: FMX: Schnelles zeichnen gesucht
 
Zitat:

Zitat von Rollo62 (Beitrag 1354666)
Hast du das denn mal versucht mit z.B. zwei festen FullScreen Images im Wechsel ?

Rollo62, danke für Deine Antwort, aber ich habe es nunmehr aufgegeben. FMX-Graphik ist mir einfach zu kompliziert und - trotz aller möglichen Versuche damit - auch zu langsam. Und wenn man es auch auf Windows XP laufen lassen möchte, wird es evtl. noch schwieriger. Auch wenn beständiges Lernen auch was für sich hat, so ziehe ich meine Motivation auch und vor allem daraus, mit vertretbarem Auwand spätestens mittelfristig auch zufriedenstellende Ergebnisse zu erreichen.

Hier muß ich wirklich mal die Lazarus-/Freepascalprogrammierer loben: Obwohl diese eine "VCL-artige", also delphiähnliche Graphik implementierte, ist diese dennoch - mehr oder weniger? - plattformunabhängig. Meine Lazarus-Compilate erfüllen jedenfalls meine Vorstellungen deutlich besser als die mit Delphi XEx erzeugten FMX-Resultate.

Vielleicht hat es damit zu tun, daß man sich für VGScene entschied, keine Ahnung. Daß es aber grundsätzlich auch mit einem VCL(-Derivat) möglich gewesen wäre, beweist die Lazarus-/FP-Entwicklergemeinde.

Rollo62 25. Nov 2016 16:25

AW: FMX: Schnelles zeichnen gesucht
 
Dann versuch es doch noch einmal mit TChart, wie schon Uwe richtig vorgeschlagen hatte.

Zitat:

Zitat von Uwe Raabe (Beitrag 1354592)
Ich bin ja immer geneigt, Dinge zu nehmen, die schon da sind. Hier würde ich mal einfach das in Delphi mitgelieferte
Delphi-Quellcode:
TChart
mit einer FastLine-Series in den Ring werfen.

Das kann schon eine ganze Menge, ist gut konfigurierbar und sollte auch schnell genug sein.
Wenn das nicht schnell genug läuft wird es sowieso schwierig werden.

Rollo

Sherlock 28. Nov 2016 08:41

AW: FMX: Schnelles zeichnen gesucht
 
Ja, ich werde mich wohl ins TeeChart reinfuchsen, hoffentlich ist die inkludierte Variante ausreichend für meinen Bedarf.

Sherlok

Sherlock 29. Nov 2016 12:43

AW: FMX: Schnelles zeichnen gesucht
 
Zitat:

Zitat von Mavarik (Beitrag 1354925)
Zu Deiner Zeichenroutine...

Musst Du immer wieder gemäß min max neu skalieren?

Wenn nein -> OMG, warum erzeugst Du jedes mal eine Monster-Bitmap, die Werte ändern sich doch nicht mehr?

Zeigst Du alle Werte immer an auf einem Bildschirm oder ist das eine große horizontale Bitmap mit jedem einzelnen Wert?

Also skaliert habe ich auf 1cm/Minute, indem ich einmalig die Skalierung des Systems lese und davon abhängig dann über die Pixel pro Centimeter einzeichne. Es wird also nur einmal skaliert... pro Bitmaperzeugung.
Ich würde ja gerne einfach nur die neuen Werte anhängen. Es ist eine große horizontale Bitmap. Und irgendwann ist diese Bitmap natürlich zu breit, so daß ich mir behelfen müsste mit mehreren Bitmaps aneinandergeklebt, oder sowas.

Sherlock

Mavarik 29. Nov 2016 13:07

AW: FMX: Schnelles zeichnen gesucht
 
Zitat:

Zitat von Delphi-Laie (Beitrag 1354696)

FMX-Graphik ist mir einfach zu kompliziert und - trotz aller möglichen Versuche damit - auch zu langsam.

FMX nutz die GPU - wenn man es richtig macht...

Bedeutet FMX ist gerade in der Grafikausgabe so schnell wie es Deinen Hardware ermöglicht... Auf jeden Fall schneller als ALLES was in einfachem Pascal implementiert ist!

Abgesehen von ein paar Taktzyklen overhead, hat man nahezu reine DirectX performance...

Zitat:

Zitat von Sherlock (Beitrag 1354927)
Also skaliert habe ich auf 1cm/Minute, indem ich einmalig die Skalierung des Systems lese und davon abhängig dann über die Pixel pro Centimeter einzeichne. Es wird also nur einmal skaliert... pro Bitmaperzeugung.
Ich würde ja gerne einfach nur die neuen Werte anhängen. Es ist eine große horizontale Bitmap. Und irgendwann ist diese Bitmap natürlich zu breit, so daß ich mir behelfen müsste mit mehreren Bitmaps aneinandergeklebt, oder sowas.

Sherlock

Dann nimm doch
1. jeweils für eine Minute eine eigene Bitmap und bau dir daraus für den Bildschirm eine Grafik...
2. baue diese Grafik im Hintergrund und stelle diese dann dar...
3. Keine Scrollbox (ginge zwar auch) einfach beim scrollen neu zusammen stellen...
4. so schaffst Du mindestens 60 FPS... Wahrscheinlich eher 1000 FPS (je nach Auflösung)

Mavarik

Sherlock 29. Nov 2016 13:14

AW: FMX: Schnelles zeichnen gesucht
 
An dieser Methode bin ich gerade dran. :D

Sherlock

Sherlock 1. Dez 2016 10:51

AW: FMX: Schnelles zeichnen gesucht
 
Die Teilbilder malen in der Tat Pfeilschnell, passen dafür aber nicht schön zusammen. Ich vermute Antialiasing. Wie kann ich das beim TBitmap.Canvas.DrawPath abschalten?

Sherlock

Mavarik 1. Dez 2016 10:58

AW: FMX: Schnelles zeichnen gesucht
 
Zitat:

Zitat von Sherlock (Beitrag 1355105)
Die Teilbilder malen in der Tat Pfeilschnell, passen dafür aber nicht schön zusammen. Ich vermute Antialiasing. Wie kann ich das beim TBitmap.Canvas.DrawPath abschalten?

Sherlock

Kind auf Original?
Scale auf 1?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:29 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz