Announcement

Collapse
No announcement yet.

TChart

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TChart

    Hallo,
    bei einer Messdatenerfassung fallen zwischen 3000 und 30000 Messwerte an. Da ich effektiv nur 1920 Pixelspalten zur Verfügung habe macht es keinen Sinn alle Messwerte in einem TChart anzuzeigen da es bei der Darstellung, Zoomen und Drucken viel zu lange dauert. Nun gibt es die Möglichkeit bei einem TChart die max. Pixel pro Seite einzustellen. Das Problem ist jedoch das dann nur die ersten Messwerte angezeigt werden.
    Hat jemand eine Idee?

    danke

  • #2
    Martin,

    blöde Idee:

    float N = anzahl der Messwerte

    float x = N / 1920

    und dann einfach nur jeden x-ten Meßwert übernehmen ??<br>
    Jetzt kommt es auf die Art Deiner Messung an, ob durch diese Holzhammer-Methode tatsächlich nur redundante Informationen verschwinden.

    Gruß,<br>
    Ja

    Comment


    • #3
      Hallo Martin,

      eine einfache Methode habe ich da nicht parat und selbst gemacht habe ich das auch noch nicht. Bei folgendem Lösungvorschlag stellt sich dann auch noch die Frage, ob das Ganze sich nicht durch direktes Zeichnen in den Canvas eines TImage deutlich beschleunigen ließe.

      Ich gehe mal davon aus, das zu jedem Messwert der Messzeitpunkt bekannt ist.<BR>
      Du ermittelst den zeitlichen Abstand zwischen dem ersten und dem letzten Messwert und den höchsten und den niedrigsten Messwert. Anhand dieser Werte kannst Du die Auflösung für die Y-Achse wählen (unterstes Pixel = niedrigster Messwert, oberstes Pixel = höchster Messwert) und für die X-Achse (1-tes Pixel = erster Messzeitpunkt, letztes Pixel = letzter Messzeitpunkt). Die Auflösung (wieviele Messpunkte dargestellt werden) würde ich von der sichtbaren Breite und Höhe in Pixeln abhängig machen. Ich würde mal hingehen und für den ersten Versuch alle 10 oder 5 Pixel einen Messwert ausgeben. Sagen wir (der Einfachheit halber) der ClientBereich ist 1000 x 1000 Pixel. Alle zehn Pixel einen Messwert ausgeben ergibt 100 darstellbare Messwerte. Sagen wir weiterhin wir haben 1000 Messwerte, pro Sekunden einen. Bei 100 darstellbaren Messwerten: 1000 Sek / 100 Messpunkte = jeden 10-ten Messwert darstellen. Deine Zeitachse löst also in 10 Sekunden Schritten auf. Für die Y-Achse machst Du das Gleiche. Wenn es darauf ankommt Ausreißer in den Messwerten zu finden, kannst Du ja noch prüfen, ob sich die 'nicht sichtbaren' Messwerte innerhalb des zu ewartenden Wertebereiches befinden und falls nicht, diese zusätzlich zwischen den anderen Messpunkten ausgeben. Ach ja, ich bin mal davon ausgegangen, daß Messdaten irgendeiner Funktion entsprechen.

      Mit ein bißchen mehr Aufwand in den Formeln, kannst Du dem Anwender dann noch die Möglichkeit geben in der X- und Y-Achse beliebig zu Zoomen und dargestellten Bereich über ScrollBars verschiebbar machen.

      Grüße Joche

      Comment

      Working...
      X