Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Graphen zeichnen+Erklärung (https://www.delphipraxis.net/41627-graphen-zeichnen-erklaerung.html)

wclk.invisible 6. Mär 2005 09:10


Graphen zeichnen+Erklärung
 
Hi Leutz,
Ich bin neu also nicht gleich brutal werden :wink:
Ich weiss es gibt schon einige Topics mit ähnlichen Thema aber die haben mir alle nicht großartig geholfen.Also folgendes:
Ich habe ein Mathe Proggi geschrieben das exponentialfunktionen, diskret log Funktionen und kontinuirlich log funktionen lösen kann. Mein Problem ist dass ich das ganze auch zeichnen lassen sollte. Ich hab mir schon irrsinnig viele Besipiele angesehen aber werde einfach nicht schlau draus :wall:. Hat jemand ein Tutorial oder macht sich jemand die Mühe mir die Grundlagen von Graphen Zeichnung zu erklären.

Danke schonmal im Vorraus
so long invi

Dust Signs 6. Mär 2005 09:35

Re: Graphen zeichnen+Erklärung
 
Im Prinzip ist das nicht allzu schwer: du hast deine Zeichenfläche und zeichnest Linien darauf. Dazu in der OH einfach mal MoveTo, LineTo, Pen und Brush nachschlagen (alles Objekte von TCanvas, deiner Zeichenfläche).
Aufpassen musst du insofern, alsdass die y-Achse nicht nach oben, sondern nach unten geht, d.h. der Punkt 0, 0 ist ganz oben links. Der Rest ist nicht schwer: du machst eine Schleife in der du den x-Wert erhöhst und den y-Wert berechnest - die beiden zeichnest du dann ;)

Dust Signs

Mirilin 6. Mär 2005 09:39

Re: Graphen zeichnen+Erklärung
 
:hi:

Zitat:

Aufpassen musst du insofern, alsdass die y-Achse nicht nach oben, sondern nach unten geht, d.h. der Punkt 0, 0 ist ganz oben links.
SetViewPortOrgEx, wenn ich mich recht entsinne :)


mfg Tobias

Luckie 6. Mär 2005 13:22

Re: Graphen zeichnen+Erklärung
 
Guck mal hier: http://www.luckie-online.de/programm...rf/index.shtml ist mit Source. Du musst eigentlich nicht mehr viel ändern, die Klasse zeichnet den Grafen von alleine, du brauchst ihr nur die Werte zu übergeben.

wclk.invisible 6. Mär 2005 17:59

Re: Graphen zeichnen+Erklärung
 
Ok das mit dem Zeichnen hab ich jetzt schonmal gerafft :-D . Mein Problem ist jetzt aber auch meine berechneten Zahlen in den Graphen reinzubekommen. Soll ich die vll in einem txt dokument zwischenspeichern und dann wieder lesen lassen? Wie das ganze dynamisch geht weiss ich leider auch nicht. Deshalb geht das mit der schleife auch nicht(trotzdem guter Vorschlag). Ich kann das Proggi ja mal morgen Posten und dann merkt ihr wahrscheinlich sofort wo ich stecken bleibe. Meine lehrer hab ich auch schon gefragt, so richtig was davon wissen tun die auch nicht :? .


ciao invi

PS: das schräger Wurf Bsp kenn ich schon, ist aber ein bisschen zu gehoben für mich.So ganz ohne Tutorial dazu funzt das net...

Dust Signs 6. Mär 2005 18:55

Re: Graphen zeichnen+Erklärung
 
Zitat:

Zitat von wclk.invisible
Ok das mit dem Zeichnen hab ich jetzt schonmal gerafft :-D . Mein Problem ist jetzt aber auch meine berechneten Zahlen in den Graphen reinzubekommen. Soll ich die vll in einem txt dokument zwischenspeichern und dann wieder lesen lassen? Wie das ganze dynamisch geht weiss ich leider auch nicht. Deshalb geht das mit der schleife auch nicht(trotzdem guter Vorschlag). Ich kann das Proggi ja mal morgen Posten und dann merkt ihr wahrscheinlich sofort wo ich stecken bleibe. Meine lehrer hab ich auch schon gefragt, so richtig was davon wissen tun die auch nicht :? .


ciao invi

PS: das schräger Wurf Bsp kenn ich schon, ist aber ein bisschen zu gehoben für mich.So ganz ohne Tutorial dazu funzt das net...

Wie wär's, wenn du die Werte statt in einer Datei in einem [df]Array[/df] Hier im Forum suchenArray ArrayArray speichern würdest ;)

Dust Signs

Jens Schumann 6. Mär 2005 19:39

Re: Graphen zeichnen+Erklärung
 
Hallo,
wie wäre es denn mit der TChart-Komponente

Binärbaum 6. Mär 2005 20:40

Re: Graphen zeichnen+Erklärung
 
Also hier mal ein Möglichkeit (ungetestet):

Delphi-Quellcode:
function Wert(x: Double): Double;
begin
  //hier wird Funktionswert von x ausgerechnet
  //sieht bei "f(x)= y= ln(x)" so aus:
  Result:= ln(x);
end;
...
procedure TForm1.Graph(xmin, xmax, ymin, ymax: Double);
var dx, dy: Double;
    i: Integer;
begin
  dx:= (xmax-xmin)/Canvas.Width;
  dy:= (ymax-ymin)/Canvas.Height;
  Canvas.MoveTo(0, Canvas.Height - Round((Wert(xmin)- ymin)/dy));
  for i:= 0 to Canvas.Width-1 do
    Canvas.LineTo( i, Canvas.Height-  Round( (Wert(i*dx+xmin) -ymin)/ dy));
end;
Die Funktion wert macht nichts anderes, als einfach den Funktionswert von x auszurechenen.
Die Prozedur Graph zeichnet den Graphen der Funktion auf die Zeichenfläche von Canvas.

MfG
Binärbaum


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