AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Diagramm erstellen, Linienfarbe soll sich ändern

Diagramm erstellen, Linienfarbe soll sich ändern

Ein Thema von Buff1984 · begonnen am 28. Dez 2007 · letzter Beitrag vom 28. Dez 2007
Antwort Antwort
Buff1984

Registriert seit: 28. Dez 2007
5 Beiträge
 
#1

Diagramm erstellen, Linienfarbe soll sich ändern

  Alt 28. Dez 2007, 13:34
Hi, ich habe ein Problem mit der Darstellung eines Liniendiagramms (So Zick-Zack mäßig). zeichne das Diagramm aus Messwerten die ich vorher in einem Array abgelegt habe. Beim Diagramm habe ich eine X- u. Y-Achse. Ich habe 10 Messwerte auf der X- Achse und eine Einteilung in 100er Schritten auf der Y-Achse. Sobald die Linie den 100er Bereich überschritten hat soll die Linie von dieser Stelle an zb. orange gezeichnet werden, ab 200 grün usw. Wie mache ich das mit dem Farbwechsel am einfachsten? Dankeschön schon mal

Delphi Forum und Delphi Source
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Diagramm erstellen, Linienfarbe soll sich ändern

  Alt 28. Dez 2007, 15:04
Wie zeichnest Du denn? Mit Canvas.MoveTo und Canvas.LineTo? Dann einfach Canvas.Pen.Color entsprechend setzen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Diagramm erstellen, Linienfarbe soll sich ändern

  Alt 28. Dez 2007, 15:08
@Deddy: Und was ist, wenn die Linie von lineTo nicht direkt an der Grenze endet/anfängt. Dann müsste man nämlich die Linie teilen. Und ich denke, darauf bezog sich die Frage

btw: hier steht auch was.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Diagramm erstellen, Linienfarbe soll sich ändern

  Alt 28. Dez 2007, 15:12
Ist doch auch nicht weiter schwer: wenn ich eine "Grenze" auf der X-Achse habe, kann ich vor dem Zeichnen kontrollieren, ob diese beim Zeichnen überschritten wird (X-Koordinate beim LineTo). Wenn das so ist, zeichne ich halt in 2 Schritten mit entsprechender Farbänderung dazwischen.

[edit] Das einzig Schwierige ist dabei, den entsprechenden Punkt an der Grenze zu ermitteln (bei einer schrägen Linie). Das kann man aber mit dem Satz des Pythagoras gut hinbekommen.[/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Buff1984

Registriert seit: 28. Dez 2007
5 Beiträge
 
#5

Re: Diagramm erstellen, Linienfarbe soll sich ändern

  Alt 28. Dez 2007, 15:14
Ja mit LineTo. Das Problem ist nur das ich an den Schnittpunkten (sobsld ich zb 100 überschreite) ja dann innerhalb einer Linie die Farbe wechseln muß. Und dafür muß ich dann wahrscheinlich das Zeichnen der Linie unterbrechen, die Farbe wechseln und bis zum Messwert weiter zeichnen, oder? Hatte halt gehofft es ging irgendwie einfacher, hab nämlich 5 Farbänderungen und 10 Messreihen (also 10 Diagramme mit je 10 Werten die etwas versetzt dargestellt werden) Bin noch en ziemliche Anfänger bei Delphi un kenn die Möglichkeiten noch net so. Danke
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Diagramm erstellen, Linienfarbe soll sich ändern

  Alt 28. Dez 2007, 15:42
Das ist doch reine Mathematik. Du hast doch den Punkt p1 unter 100 und den Punkt p2 der über 100 liegt. Somit kannst du mit den 2 Punkten (da es eine lineare Funktion dazwischen ist) den Anstieg berechnen. Mit diesem kannst du dann den passenden X Wert zu dem Punkt auf der 100-Linie berechnen. Voila - bis dahin schwarz malen (p1 bis Punkt auf 100-Linie) und dann Stiftfarbe wechseln und dann von dem Punkt weiter zu p2.
  Mit Zitat antworten Zitat
Buff1984

Registriert seit: 28. Dez 2007
5 Beiträge
 
#7

Re: Diagramm erstellen, Linienfarbe soll sich ändern

  Alt 28. Dez 2007, 16:23
So bevor das hier auch noch gesperrt wird weil ichs nicht selber verlinkt habe Delphi Source und Delphi Forum

Danke für eure Hilfe und sorry, wußte nicht das man das mit dem verlinken macht.
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Diagramm erstellen, Linienfarbe soll sich ändern

  Alt 28. Dez 2007, 18:11
Hallo,

das müsste auch mit einer Verhältnisgleichung gehen:
Delphi-Quellcode:
const
  Wert1: TPoint = (X: 40; Y: 130);
  Wert2: TPoint = (X: 90; Y: 90);
var
  P100: TPoint;
begin
  canvas.MoveTo(0, 100);
  canvas.LineTo(self.Width, 100);//Kontrollstrich bei 100 zum Überprüfen

  P100.Y:= 100;
  P100.X:= Wert1.X+ Round((100- Wert1.Y) * (Wert2.X- Wert1.X) / (Wert2.Y- Wert1.Y));

  canvas.MoveTo(Wert1.X, Wert1.Y);
  canvas.LineTo(P100.X, P100.Y);
  
  canvas.Pen.Color:= clRed;
  canvas.MoveTo(P100.X, P100.Y);
  canvas.LineTo(Wert2.X, Wert2.Y);
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:03 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