![]() |
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: |
Re: Darstellung einer Kurve in Delphi
Schau dir mal die TChart-Komponente an.
|
Re: Darstellung einer Kurve in Delphi
TChart...hmmm naja kenn ich mich ehrlich gesagt überhaupt nich mit aus wie stell ich das an?
|
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 |
Re: Darstellung einer Kurve in Delphi
Zitat:
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 |
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
|
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:
Ich hoffe damit kommst du zurecht ;)
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; 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 09:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz