Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem bei Benutzung der TChart (https://www.delphipraxis.net/82391-problem-bei-benutzung-der-tchart.html)

Andre_Schmidt 12. Dez 2006 12:47


Problem bei Benutzung der TChart
 
Hallo Leute....

ich steh vor folgendem Problem und zwar, wie bekomme ich mein p(x) nun in die TChart Komponente hinein,
ich hoffe es kann mir jemand behilflich sein

gruß Andre


Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm5 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    Edit11: TEdit;
    Edit12: TEdit;
    Edit13: TEdit;
    Edit14: TEdit;
    Edit15: TEdit;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  procedure FormPAINT(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form5: TForm5;

implementation

{$R *.dfm}

procedure TForm5.Button1Click(Sender: TObject);
var
x0,x1,x2,x3,x4,y0,y1,y2,y3,y4,
x0x1,x1x2,x2x3,x3x4,
x0x1x2,x1x2x3,x2x3x4,
x0x1x2x3,x1x2x3x4,
x0x1x2x3x4:real;
c0,c1,c2,c3,c4,p,x:real;

begin
{Einlesen der Variablen}
x0:=StrToFloatDef(Edit1.Text,0);
x1:=StrToFloatDef(Edit2.Text,0);
x2:=StrToFloatDef(Edit3.Text,0);
x3:=StrToFloatDef(Edit4.Text,0);
x4:=StrToFloatDef(Edit5.Text,0);
y0:=StrToFloatDef(Edit6.Text,0);
y1:=StrToFloatDef(Edit7.Text,0);
y2:=StrToFloatDef(Edit8.Text,0);
y3:=StrToFloatDef(Edit9.Text,0);
y4:=StrToFloatDef(Edit10.Text,0);

{Berechnung 1.Spalte}
x0x1:=(y1-y0)/(x0-x1);
x1x2:=(y2-y1)/(x2-x1);
x2x3:=(y3-y2)/(x3-x2);
x3x4:=(y4-y3)/(x4-x3);

{Berechnung 2.Spalte}
x0x1x2:=(x1x2-x0x1)/(x2-x0);
x1x2x3:=(x2x3-x1x2)/(x3-x1);
x2x3x4:=(x3x4-x2x3)/(x4-x2);

{Berechnung 3.Spalte}
x0x1x2x3:=(x1x2x3-x0x1x2)/(x3-x0);
x1x2x3x4:=(x2x3x4-x1x2x3)/(x4-x1);

{Berechnung 4.Spalte}
x0x1x2x3x4:=(x1x2x3x4-x0x1x2x3)/(x4-x0);

c0:=y0;
c1:=x0x1;
c2:=x0x1x2;
c3:=x0x1x2x3;
c4:=x0x1x2x3x4;


{Ausgabe der Ergebnisse}
Edit11.Text := FloatToStr(c0);
Edit12.Text := FloatToStr(c1);
Edit13.Text := FloatToStr(c2);
Edit14.Text := FloatToStr(c3);
Edit15.Text := FloatToStr(c4);

{Zu Zeichnende Funktion}
p(x)=c0+c1*(x-x0)+c2*(x-x0)*(x-x1)+c3*(x-x0)*(x-x1)*(x-x2)+
        c4*(x-x0)*(x-x1)*(x-x2)*(x-x3);

Goldesel 12. Dez 2006 14:26

Re: Problem bei Benutzung der TChart
 
Ich hoffe, dass ich dein Problem richtig verstanden hab. Ich beschreibe einfach mal wie ich vorgehen würde:

Also, zunächst deklarierst du eine Variable x. Und jetzt rechnest du die Funktion mit den unterschiedlichen x-Werten aus und fügst sie durch AddXY deinem TChart (bzw. TSeries) hinzu.

Andre_Schmidt 12. Dez 2006 14:51

Re: Problem bei Benutzung der TChart
 
wird das dann in etwa so dem TChart beigefügt?:

Delphi-Quellcode:
      begin
        series1.Clear;
        series1.AddXY(0,0);
        series1.AddXY(1,p);
      end;
und bei dem x deklarieren hab ich gerade einen blackout, wie deklariere ich z.B. von 0 bis 10

Gruß
Andre

Goldesel 12. Dez 2006 15:54

Re: Problem bei Benutzung der TChart
 
Ich hab dir mal was kurzes geschrieben, was dir vielleicht weiterhelfen könnte. Musst du halt nur an deine Funktion anpassen.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var x, y: integer;
begin
  x:=1;
  repeat
   //quadrieren des x-wertes
   y:=sqr(x);
   //in chart darstellen
   series1.AddXY(x,y);
   //x-wert erhöhen
   x:=x+1;
  until x=10 ;
end;
In diesem Fall wird die Anweisung (d.h. quadrieren des x-Wertes, darstellen im Chart und x-Wert erhöhen) so oft wiederholt, bis x=10 ist.

Andre_Schmidt 14. Dez 2006 11:42

Re: Problem bei Benutzung der TChart
 
also das was du mir geschrieben hast ist super und klappt auch, nur mein problem liegt jetzt darin, wenn ich z.B. in 0.01 Schritten die Funktion zeichnen will hängt sich delphi immer auf...am rechner kann es nicht liegen sind eigentlich recht gute im rechenkabinett.

Delphi-Quellcode:

Goldesel 14. Dez 2006 14:42

Re: Problem bei Benutzung der TChart
 
Mmmhhh ... also bei mir funktioniert das irgendwie auch nich. Die rechnung wird zwar ausgeführt, allerdings nicht ins TChart gezeichnet. Ich schau mal, ob ich eine Lösung finde ...

Goldesel 14. Dez 2006 17:14

Re: Problem bei Benutzung der TChart
 
Ich würd dir raten, das ganze mit einer Schleife zu lösen. So funktioniert es zumindest bei mir.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var x,y:real; i:integer;
begin
x:=0;
  for i := 0 to 10 do
  begin
      //quadrieren
      y:=sqr(x);
      //zu chart hinzufügen
      Series1.AddXY(x,y);

      //x hochzählen
      x:=x+0.01;
  end;
end;
So müsste es funktionieren.

Mfg
Jannik

Andre_Schmidt 15. Dez 2006 09:36

Re: Problem bei Benutzung der TChart
 
Ich danke dir für deine schnelle hilfe


gruß andre


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