Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Darstellung einer Kurve in Delphi (https://www.delphipraxis.net/109478-darstellung-einer-kurve-delphi.html)

Hoffi1990 2. Mär 2008 12:52


Darstellung einer Kurve in Delphi
 
Hi also ich bin ein ziemliche Neuling im Thema delphi und muss von der Schule aus ein programm erstellen du darstellung der gleichmäßig beschleunigten bewegung. wir sollen das erst in einer wertetabelle die werte darstellen un diese dann in ein diagramm übertragen un es soll ein kurve entstehen. alos das v-t und a-t diagramm kriege ich ja noch hin, weil das ja nur lineare funktionen sind, aber bei dem s-t diagramm ist es ja ein kurve und ich habe ehrlich gesagt keine ahnung, wie ich das hinbekomme.

wär echt nett wenn ihr mir helfen könnten es geht um mein abi will mir das nich durch info versauen. :roll:
danke schon mal für eure hilfe
mfg Hoffi :thumb:

mkinzler 2. Mär 2008 12:53

Re: Darstellung einer Kurve in Delphi
 
Schau dir mal die TChart-Komponente an.

Hoffi1990 2. Mär 2008 12:59

Re: Darstellung einer Kurve in Delphi
 
TChart...hmmm naja kenn ich mich ehrlich gesagt überhaupt nich mit aus wie stell ich das an?

Looper 2. Mär 2008 13:03

Re: Darstellung einer Kurve in Delphi
 
Liste der Anhänge anzeigen (Anzahl: 2)
Also ich habe auch mal so ein Programm geschrieben und mit TCanvas realisiert. Wenn er dir hilft kannst du dir den Code ja mal anschauen. Der ist aber sicherlich verbesserungsfähig ;).

mfg Looper

Klaus01 2. Mär 2008 13:07

Re: Darstellung einer Kurve in Delphi
 
Zitat:

Zitat von Hoffi1990
... alos das v-t und a-t diagramm kriege ich ja noch hin, weil das ja nur lineare funktionen sind, aber bei dem s-t diagramm ist es ja ein kurve und ich habe ehrlich gesagt keine ahnung, wie ich das hinbekomme.

Wo ist denn zeichnerisch der Unterschied, ob Du nun eine lineare Funktion oder eine nichtlineare Funktion
darstellen willst.
Du brauchst doch nur für ein x das y berechnen, schon hast Du die Koordinaten und musst
nur noch einen Punkt dahin malen.

Grüße
Klaus

Hoffi1990 2. Mär 2008 13:10

Re: Darstellung einer Kurve in Delphi
 
gut danke ihr wart echt ne hilfe ich probiers mal falls ich noch fragen hab stell ich sie noch mal

xZise 2. Mär 2008 13:17

Re: Darstellung einer Kurve in Delphi
 
Hi Hoffi,
ich würde es folgendermaßen machen:
Und zwar gibst du an in welchen Schritten er die Werte berechnen soll (also bei s-t z.B. einen Definitionsbereich von 10 Sekunden und dann ein Intervall von einer Sekunde).
Und dann berechnest du die Werte für 0, 1, 2 ... 9, 10 Sekunden:
Entweder du speicherst das in einem dynamischen Array, oder du zeichntest du gleich ein.
Dabei ist es von Vorteil den obersten und untersten zu wissen.
Und dann kannst du diese Punkte miteinander verbinden.

Delphi-Quellcode:
Canvas.MoveTo(0, <Höhe für t = 0>);
for i := 1 to <Max> div <Interval> - 1 do
begin
  Canvas.LineTo(i * <Breite>, <Höhe für t = i * Interval>);
end;
Ich hoffe damit kommst du zurecht ;)
Max wäre 10 sein (s.o.) und Interval wäre 1.
Das "div" macht eine Integerdivision: Teilt also zwei Integer und schneidet den Rest ab (kann auch sein, dass er abrundet ^^): 3 div 2 = 1 oder 9 div 3 = 3
Und wir müssen ein Wert runtergehen, da wir - jedenfalls ist es so üblich beim Programmieren - bei 0 beginnen. Müssen also bei 10 Werten von 0. Wert bis zum (10 - 1).Wert gehen.
Die Breite ist der Abstand zwischen den Werten.
Wenn du 10 Werte darstellen willst und eine Breite für deinen Graph (ohne Achsen) von 100 hast, wäre die Breite maximal 10 (Also 10 Pixel abstand zwischen den Werten).
Und die Höhe kannst du einfach jedesmal berechnen.
Wobei du zu Anfang einmal die Höhe für t = Max - 1 berechnen würde, um den Graphen passend zu machen.
Ein Beispiel dazu: Wenn die Höhe für den Graphen 100 Pixel hoch ist, und der hächste Wert einen Wert von 200 hat, und der kleinste Wert von 0 hat, dann empfiehlt es sich, dass du die Höhe durch zwei teilst, damit die Werte zwischen 0 und 100 sind.

MfG
xZise


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:42 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