Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Fläche auf TChart einfärben (https://www.delphipraxis.net/123208-flaeche-auf-tchart-einfaerben.html)

Sven M. 29. Okt 2008 14:16


Fläche auf TChart einfärben
 
Hoi zusammen,
muss euch mal wieder nerven...;)

Und zwar habe ich folgendes Problem: Ich möchte die Fläche unter einer Kurve im TChart einfärben. Die Fläche berechne ich auch - und zwar über das Trapez zwischen zwei Punkten auf der x-Achse und den jeweiligen Funktionswerten. Es liegt nahe, das berechnete Trapez dann auch gleich einzufärben. Dazu möchte ich die Canvas-Eigenschaft des Charts nutzen. Allerdings muss ich ja die exakten Koordinaten der Punkte ermitteln. Und genau daran scheitere ich gerade: Wie kann ich denn die Koordinaten des Punktes im Canvas ermitteln?

Und noch eine weitere Frage: Die eingefärbte Fläche behält ihre Position (beim Zoomen oder verschieben) relativ zur Series dann schon bei und bleibt nicht statisch auf dem selben Fleck stehen, oder?


Beste Grüße,
Sven





Edith meint:

Gerade noch einen anderen Ansatz entdeckt...
Man könnte ja auch noch über den Graphen einen Flächengraphen einzeichnen. Das Problem hierbei: Die Fläche zieht sich nach unten ja bis ins "Unendliche"...D.h. ich müsste für die Series einen "Nullwert" angeben können....Geht sowas denn?

Tyrael Y. 29. Okt 2008 15:18

Re: Fläche auf TChart einfärben
 
Ich glaube das ging ganz einfach mit einer Methode von TChartSeries

Delphi-Quellcode:
procedure ColorRange(AValueList: TChartValueList;Const FromValue, ToValue: Double; AColor: TColor);
Als AValueList gibst du die Werteliste deiner Chart Series an
und From und To ist der Bereich von X0 bis Xn.

Sven M. 29. Okt 2008 15:45

Re: Fläche auf TChart einfärben
 
Besten Dank für deinen Beitrag. Die Funktion hatte ich wohl vorher einfach überlesen... :gruebel:

Noch macht sie aber auch noch nicht, was ich will - nämlich gar nichts...:(

Delphi-Quellcode:
Series1.ColorRange(Series1.YValues, 0, Series1.Count-1, clred);

Tyrael Y. 29. Okt 2008 15:52

Re: Fläche auf TChart einfärben
 
Delphi-Quellcode:
Series1.ColorRange(Series1.YValues, 0, Series1.MaxYValue, clred);
btw.

Wieso benutzt du nicht TAreaSeries, das kann das Verhalten, was von dir gewünscht wird?

Bei TLineSeries müsste man rumtricksen. Ich glaube nämlich das CoolorRange nur die Linie selber eingefärbt hat, bin mir aber nicht sicher, schon lange her.

Sven M. 30. Okt 2008 07:24

Re: Fläche auf TChart einfärben
 
Liste der Anhänge anzeigen (Anzahl: 1)
TAreaSeries kann prizipiell schon das, was ich will...Allerdings füllt die Komponente ja den Bereich bis zum unteren Diagrammende auf. Und das will ich ja eben nicht.;)
Ich möchte, dass ein bestimmter Bereich unter einem Graphen markiert wird. In dem Beispiel im Anhang also nur bis y:=0...;)

So früh am Morgen noch 'n bisschen vergesslich...Jetzt ist der Anhang auch da...


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:55 Uhr.

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