Visual Studio + Kurvenanzeige

Larry Laffer

Super-Moderator , User des Jahres 2008-2009
Teammitglied
Beiträge
14.468
Reaktionspunkte
3.305
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
getreu meines Leitsatzes für das nächste Jahr habe ich nun mal angefangen mich intensiver mit Visual-Studio, im Hinblick auf einen möglichen Visu-Ersatz, zu beschäftigen. Dabei habe ich mich dann auch gleich um das Thema bemüht, das mir am Meißten am Herzen liegt : Kurven anzeigen.
Hier war ich dann schon ein wenig überrascht, festzustellen, dass Visual Studio derartige Anzeigen von sich aus gar nicht kann - man muß dafür ein Addon laden - das ist allerdings glücklicherweise Freeware ...
Nachdem ich mich zunächst mit dem (nach meiner Meinung) etwas gewöhnungsbedürfitigen Workflow davon arragiert hatte stellt sich mir nun die Frage : "Wie kann ich dem Ding Darstellungswerte übergeben ?". Ich habe mir im Script ein Array mit x- und y-Werten erzeugt. Diese liegen in der Menge Anzahl vor. Vielleicht kann mir dazu jemand den einen oder anderen Tip geben - eine brauchbare Beschreibung habe ich dazu bislang nicht gefunden ... :(

Grüße
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@HMI-Muckel und Enter:
Danke für die Vorschläge - leider treffen sie nicht auf mein Problem zu. Charts (Kurvenanzeigen) gibt es von unterschiedlichen Herstellern - meiner wäre dann von Microsoft. Obwohl sie zum Teil Ähnliches können wollen sie doch jeder für sich ganz unterschiedlich behandelt werden - und das genau ist aktuell mein Problem ...

Gruß
LL
 
hey larry,

ich kenne diese klasse zwar nicht, aber was ich gerade so beim überfliegen aufschnappen konnte ist, dass du die einzelnen punkte deines charts (ich hab explizit nach linien geguckt, denke bei punkt und anderem sollte es ähnlich funktionieren) einer serie hinzufügen mußt.

in C# bedeutet das in etwa:

Code:
*
chart1.Series["Series1"].Points.AddY(myPoint);

offensichtlich wird davon ausgegangen, dass auf der x-Achse immer die selbe schrittweite gilt...

um nochmal zurück auf zedgraph zu kommen ... das setze ich auch oft und exzessiv ein :ROFLMAO: ...guter stoff
 
TChart

Hallo,

vl schrieb:
in C# bedeutet das in etwa:


Code:
*
chart1.Series["Series1"].Points.AddY(myPoint);

offensichtlich wird davon ausgegangen, dass auf der x-Achse immer die selbe schrittweite gilt...

Ich vermute mal ganz stark, das es sich hier um ein Derivat der TeeEngine der Firma Steema Software handelt.

Dann sollte auch folgendes möglich sein :

chart1.Series["Series1"].Points.AddXY(myXPoint, myYPoint);

Die Chart interpoliert dann den X-Value trotz fester Schrittweite entsprechend in die X-Achse.

Gruß

Question_mark
 
Zuviel Werbung?
-> Hier kostenlos registrieren
chart1.Series["Series1"].Points.AddXY(myXPoint, myYPoint);

habe ich so in den verfügbaren beispielen nicht gefunden und leider auch keine sichtbare künstlerwerkstatt installiert um das zu testen.
aber larry wirds rausfinden :rolleyes:
trotzdem bleibt der umweg über für(i=0;i<meineFeldLänge;i++) tue Feld[i,0] als X und Feld[i,1] als Y hinzufügen. das scheint mir der kleinweich-weg zu sein...
 
KISS : Keep it simple, stupid

Hallo,

vl schrieb:
für(i=0;i<meineFeldLänge;i++) tue Feld[i,0] als X und Feld[i,1]

Bei sowas kommt mir immer das kalte Grausen, ich verstehe den Code zwar. Aber es geht wirklich einfacher und transparenter. Allerdings nicht bei Kleinweich...

vl schrieb:
das scheint mir der kleinweich-weg zu sein...

Yeep, geht aber einfacher in Delphi (und hier ist die Chart Componente gleich im Lieferumfang des Compilers enthalten) :

Code:
chart1.Series["Series1"].Points.AddXY(myXPoint, myYPoint);

Aber jeder wie er es persönlich mag, ich bevorzuge die letztere Variante.

Gruß

Question_mark
 
Yeep, geht aber einfacher in Delphi (und hier ist die Chart Componente gleich im Lieferumfang des Compilers enthalten)

wir könnten uns jetzt über die vor- und nachteile des delphin-wegs streiten ... versionskompatibilität etc. aber lassen wir larry erstmal addXY testen und danach zedgraph, welches zwar auch den Add(x,y)-alkoholrhythmus vertraut, aber ansonsten sehr komfortabel ist...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Einfach neue Ideen haben ...

Hallo,

vl schrieb:
über die vor- und nachteile des delphin-wegs streiten ... versionskompatibilität etc. aber lassen wir larry erstmal addXY testen und danach zedgraph,

Streiten will ich mich auch nicht über den richtigen Weg. Ich habe mir einfach den Weg gesucht, der mich mit möglichst wenig Aufwand zu akzeptablen Ergebnissen führt. Aber viele Wege führen nach Rom ...

vl schrieb:
versionskompatibilität

Das Problem entsteht nur, wenn man nicht die Quelltexte zur Verfügung hat, also evtl. irgendwo aus dem Internet irgendwelche obskuren Komponenten für lau herausgefischt hat.

Allerdings hat sich Embarcadero ab D2009 ein hausgemachtes Problem geschaffen. Man hat die vielfachen Benutzerwünsche eines einzelnen Users :ROFLMAO: nach UniCode endlich erfüllt und damit für die Community wirklich Riesenprobleme geschaffen. Ein String ist also ab D2009 nicht mehr ein AnsiString mit 8 Bit/Zeichen, sondern ein UniCodeString mit 16 Bit/Zeichen.

Ich hatte dann das Vergnügen, ca. hundert von mir erstellte Komponenten nach UniCode zu portieren :cry:

Darunter auch den Delphi-Wrapper für AG_Link40. Wobei ich gerade versuche, das ganze in eine Delphi VCL-Komponente zu verpacken. Der Vorteil ist eben eine einfache Konfiguration der Kommunikations-DLL und Aufruf der Funktionen mit deutlich weniger Parametern, da das meiste in Objekten verpackt ist und der Rest im Objektinspektor per Mausklick konfiguriert werden kann. Um mit der DLL eine Verbindung zur SPS aufzubauen, waren bisher ca. 50 Zeilen Quellcode erforderlich, das ganze kann ich dank der Verpackung in eine VCL-Komponente nun auf eine einzige Zeile reduzieren ...
Ich habe das bisher nur für die RK512 Kommunikation erstellt, aber das funktioniert schon ganz gut und hat meinen Aufwand für die Programmerstellung erheblich reduziert.
Insofern hat mich die Versionsinkompatibilität eher zu neuen Ideen angeregt ...:ROFLMAO:

Gruß

Question_mark
 
@Vierlagig:
Danke für den Hinweis mit dem Add-Befehl. Den hatte ich zwar gesucht, aber nicht gefunden - ich muß allerdings gestehen, dass ich, nachdem ich entdeckt hatte, dass man den übergebenen Variablentyp angeben konnte, mehr nach etwas gesucht habe, wo es möglich ist gleich ein ganze Array oder aber mindestens, wie QM schon geschrieben hat, ein Werte-Paar übergeben kann.

@QM:
Nur weil ich mich vordergründig zunächst für Visual-Studio entschieden habe heißt das nicht unbedingt, dass das so bleibt. VS war ein Vorschlag meines Mitarbeiters, der dies favourisiert hat. Mit Delphi habe ich auch schon geliebäugelt und mir von meinem Sohn seine SW nun auch zum Testen besorgt habe. Mal schauen, wie das bei mir so abschneidet - vor Allem, was das angesprochene Tool (und dessen Handling) angeht.
Ich werde weiter dazu schreiben ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
*
chart1.Series["Series1"].Points.AddY(myPoint);

Als Ergänzung :
Es gibt hier natürlich auch bei MS einen AddXY(myXPoint,myYPoint).
Meine Frage nun :
Wie hast du das Ding gefunden - wie schon geschrieben hatte ich auch danach gesucht, bin aber nicht so recht fündig geworden ...

Gruß
LL
 
ich soll dir das geheimnis meines erfolgs verraten? :rolleyes:

beständige und hartnäckige recherche ... auf der von dir verlinkten seite gibt es zum einen einen link zur dokumentation: http://www.microsoft.com/downloads/...35-B087-4324-9DBA-6DD5E844FD9F&displaylang=en (nicht sehr aufschlussreich, wenn man noch nie damit gearbeitet hat aber als spätere referenz zu empfahlen) und von da aus gibt es einen link zu beispielen: http://code.msdn.microsoft.com/mschart ... diese solltest du dir auf jeden fall ansehen, wenn du weiter mit sichtbare künstlerwerkstatt arbeiten willst.
 
Zurück
Oben