INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

PNG zeichnen in Schleife sehr langsam



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

05.12.2011, 13:26
Beitrag #1

kirmac09 Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Dec 2011

10.0
2008
DE



PNG zeichnen in Schleife sehr langsam
Hallo,

hoffe ihr könnt mir helfen, hab jetzt schon länger gesucht aber auch hier nichts zu meinem Thema gefunden!

Problem liegt darin, dass ich ein Boolean Array mit den einzelnen Spalten eines 2D Boolean Arrays vergleiche. Wenn eine Spalte übereinstimmt zeichne ich ein Bild (je Spalte ein anderes). Das Problem ist, das sobald ich das serialisiertePixmap.vi in die Schleife einbaue das ganze bis zu mehreren Sekunden dauert. Unzumutbar das man als Benutzer solange warten muss ;D


Ich denke es gibt sicher einen besseren Weg das zu programmieren als wie ich das gemacht habe. Hoffe die Erklärung war nicht zu umständlich, Programm ist angefügt.

Lg Manuel

GrafikTest.vi ladet das 2D Array aus Fahrwege.csv, der Pfad müsste bei euch also aktualisiert werden, ebenso der Pfad für die png dateien.


Angehängte Datei(en) Thumbnail(s)
       

10.0 .vi  Grafiktest.vi (Größe: 24,4 KB / Downloads: 254)

0.0 .csv  Fahrwege.csv (Größe: 6,57 KB / Downloads: 225)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.12.2011, 19:52 (Dieser Beitrag wurde zuletzt bearbeitet: 05.12.2011 19:54 von schrotti.)
Beitrag #2

schrotti Offline
LVF-Freak
****


Beiträge: 842
Registriert seit: Feb 2008

2009 - 2011
2006
kA

70180
Deutschland
RE: PNG zeichnen in Schleife sehr langsam
Wenn du das <= LV2010 abspeicherst schau ich rein.

Gruß Julius
Empfehlungen: expressionflow, LavaG , mooregoodideas, OpenG, JKI Blog
Tipp
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.12.2011, 21:26
Beitrag #3

kirmac09 Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Dec 2011

10.0
2008
DE



RE: PNG zeichnen in Schleife sehr langsam
Hier das ganze für die ältere Version (Labview 8.6), hoffe du kannst mir helfen!

Lg Manuel


Angehängte Datei(en)
0.0 .zip  Grafiktest Ordner.zip (Größe: 14,05 KB / Downloads: 239)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.12.2011, 08:06
Beitrag #4

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
RE: PNG zeichnen in Schleife sehr langsam
Warum zeichnest Du bis zu 40 mal das gleiche Bild in der letzten Schleife?

Hier würde es helfen, wenn nur einmal gezeichnet wird, falls ein TRUE in dem Array ist.

Abgesehen davon sollte das Laden der immer selben Datei auch nicht in der Schleife stecken.

Ansonsten ließen sich noch ein paar Verbesserungen anbringen: Automatisches Indizieren, Intialisierung von "Array" über Initialize Array.vi, Einsatz von logischen Operatoren statt Case-Anweisung.

Die Indizes der Schleifen solltest Du auch noch mal überprüfen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.12.2011, 08:29 (Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2011 08:39 von kirmac09.)
Beitrag #5

kirmac09 Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Dec 2011

10.0
2008
DE



RE: PNG zeichnen in Schleife sehr langsam
Danke für die Hinweise,

das zeichnen steckt deshalb in der Schleife weil im richtigen Programm dann für jede Spalte ein eigenes Bild gezeichnet wird, also wenn schaltartikel=wie 1. Spalte von Fahrwege dann 1. bild, wenn =2. Spalte dann 2. Bild, können auch durchaus mehrere gezeichnet werden, habe das nur zum Test vereinfacht.

Deswegen muss das Zeichnen doch in der Schleife stecken, habe keine andere Möglichkeit gefunden!
Dasselbe mit dem Laden, weil bis jetzt hatte ich das so gemacht das er durch die aktuelle Schleifenposition (i-Schleifeniteration) erkennt welches Bild er darüberzeichnen soll. Bin auf keine bessere Lösung gekommen.

Im Prinzip soll das ganze Programm aufgrund der Übereinstimmung der Schaltartikel mit den Fahrwegen bestimmte Bilder anzeigen.

Das mit dem Initialisieren und den Indizes werd ich mir mal anschauen!

EDIT:
Zum automatischen indizieren, damit meinst du wahrscheinlich die 2 Schleifen am Anfang wo ich die Werte in das Array schreibe, wenn ich dort allerdings automatisch indiziere hatte das zuerst so, überspringt er die For-Schleife einfach, oder vertausche ich da jetzt was?

Lg
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.12.2011, 11:14 (Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2011 11:15 von kirmac09.)
Beitrag #6

kirmac09 Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Dec 2011

10.0
2008
DE



RE: PNG zeichnen in Schleife sehr langsam

Akzeptierte Lösung

Erstmal sorry für den Doppelpost.

Ich hab jetzt zumindest Teilweise eine Lösung gefunden!

In meinem 1. Versuch habe ich die PNG datei jedes mal neu gezeichnet auch wenn gar keine neue png datei hinzugekommen ist (zum überschreiben).

Ich habe die Laufzeit jetzt so reduziert das ich nur zeichne wenn es auch umbedingt notwendig ist! Ist zwar nicht perfekt aber Ok für mich!

vorher 40 mal zeichnen
jetzt abhängig aber zwischen 0-10 mal

vorher 1200 ms
jetzt 50-200 ms

Hänge das neue *.vi an, vielleicht hilft es ja jemanden!


Eine Frage noch an unicorn, was genau meinst du mit
Zitat:Einsatz von logischen Operatoren statt Case-Anweisung

Versteh ich nicht ganz, bitte um Erklärung

Lg Manuel


Angehängte Datei(en)
9.0 .vi  Grafiktest.vi (Größe: 165,27 KB / Downloads: 195)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.12.2011, 15:47
Beitrag #7

GerdW Offline
______________
LVF-Team

Beiträge: 17.399
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: PNG zeichnen in Schleife sehr langsam
Hallo Manuel,

zu deiner Lösung: da ist doch einiges an RubeGoldberg drin...

Siehe Anhang!

- Im ersten Frame: "konstante Operationen" außerhalb von Schleifen durchführen, Autoindizierung bei FOR-Loops nutzen, effiziente Funktionen zum Cluster-Bauen nutzen
- dritter Frame: Autoindizierung in der FOR-Loop nutzen! Wozu überhaupt eine FOR-Loop mit 60 Iterationen, wenn eines der beteiligten Arrays mit nur einem einzigen Element initialisiert wird? Wozu die FOR-Loop um den Pfad-Vergleich?

FOR-Loops unterstützen Autoindizierung - welche fast immer zu effizienteren Programmen (und leichter lesbaren) führt!!!


Angehängte Datei(en)
10.0 .vi  Grafiktest.vi (Größe: 24,71 KB / Downloads: 221)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.12.2011, 16:00 (Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2011 16:07 von unicorn.)
Beitrag #8

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
RE: PNG zeichnen in Schleife sehr langsam
(06.12.2011 08:29 )kirmac09 schrieb:  Zum automatischen indizieren, damit meinst du wahrscheinlich die 2 Schleifen am Anfang wo ich die Werte in das Array schreibe, wenn ich dort allerdings automatisch indiziere hatte das zuerst so, überspringt er die For-Schleife einfach, oder vertausche ich da jetzt was?

Lg

Mit der äußeren Schleife sollte das automatische Indizieren gehen. In der inneren Schleife geht es nicht, da Du jedes zweite Element nutzen willst (2*i).
(06.12.2011 11:14 )kirmac09 schrieb:  ..
Eine Frage noch an unicorn, was genau meinst du mit
Zitat:Einsatz von logischen Operatoren statt Case-Anweisung

Versteh ich nicht ganz, bitte um Erklärung
..

Dritter Frame: in der Schleife berechnest Du nur 'Not And' aus den beiden Boolean des Clusters. Das wäre der besagte logische Operator.

"Array"-Control und lokale Variable sind nicht nötig. Einfach einen Draht ziehen.

Bei Initialize Array nicht die Dimension, sondern die Anzahl der Elemente in der ersten Dimension angeben. Soll das Array zwei- oder mehrdimensional sein, muss das Initialize Array VI entsprechend größer ziehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.12.2011, 17:23
Beitrag #9

kirmac09 Offline
LVF-Neueinsteiger


Beiträge: 5
Registriert seit: Dec 2011

10.0
2008
DE



RE: PNG zeichnen in Schleife sehr langsam
Danke für die Hilfe, hat mir sehr viel weitergeholfen.

Hab das jetzt dementsprechend umgeändert.

Einzige Frage wenn ich mit einem 2D Array die Autoindizierung nutze, wird bei der ersten Schleife doch immer der Zeilenindex gewählt, was ist wenn ich den Spaltenindex zuerst will? Ist das möglich?

Lg
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.12.2011, 18:15
Beitrag #10

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: PNG zeichnen in Schleife sehr langsam
(06.12.2011 17:23 )kirmac09 schrieb:  Einzige Frage wenn ich mit einem 2D Array die Autoindizierung nutze, wird bei der ersten Schleife doch immer der Zeilenindex gewählt, was ist wenn ich den Spaltenindex zuerst will? Ist das möglich?
Ein Transpose-2D-Array einfügen!

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  XY Graph Zeichnen 911tom 15 11.822 06.02.2018 08:33
Letzter Beitrag: GerdW
  Bild mit Koordinaten in Picture zeichnen oder Bild an Bild zeichnen Planich 4 7.191 26.10.2012 10:14
Letzter Beitrag: Planich
Rainbow Karte zeichnen pdvprojekt 4 5.961 21.10.2012 12:09
Letzter Beitrag: GerdW
  Einen Kreis über eine jpeg Datei zeichnen und beide zusammen darstellen raven1276 2 5.598 18.02.2012 13:02
Letzter Beitrag: raven1276
  mehrere Formen zeichnen- und ggf. löschen Belimo 1 4.747 23.09.2011 07:33
Letzter Beitrag: Y-P
  Linien zeichnen bringen CPU auf 99% betas 3 4.825 28.12.2010 10:52
Letzter Beitrag: jg

Gehe zu: