Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi lineare gleichung zeichnen (https://www.delphipraxis.net/110408-lineare-gleichung-zeichnen.html)

mortality 17. Mär 2008 20:53


lineare gleichung zeichnen
 
hallo nochmal,
da mir keiner auf mein vorherigen topic antwortet....werde ich das letzte mal was einfaches fragen...was bei mir irgendwie net funktionieren will

und zwar die ableitung der funktion ax²+bx+c soll graphisch dargestellt werden, aber wird net korrekt eingestellt
Delphi-Quellcode:
bereich:= Round(StrToInt(intervall.Text)/2);

...

procedure TForm1.AbleitungClick(Sender: TObject);
var f1,f2,x1,x2:integer;
begin
new_b:=a*2;
new_c:=b;
abl_ausg.Visible:=true;
if new_c=0 then
  Abl_ausg.Caption:='y=f(x)='+floattostr(new_b)+'x'
   else
     Abl_ausg.Caption:='y=f(x)='+floattostr(new_b)+'x'+'+'+floattostr(new_c);
if a=0  then
 begin
  Abl_ausg.Caption:='y=f(x)='+floattostr(new_c)
 end;
 graphbox.Canvas.pen.color :=clRed; //Ändert die Farbe des Stift-Objekts Pen
 graphbox.Canvas.pen.width :=1; //Ändert die Strichstärke des Stift-Objekts Pen
 f1:=Round(graphbox.height/2)-(new_b*(-bereich))+new_c;
 f2:=Round(graphbox.height/2)-(new_b*(bereich))+new_c;
 x1:= Round(graphbox.width/2)-bereich;
 x2:= Round(graphbox.width/2)+bereich;
 graphbox.canvas.MoveTo(x1,f1);
 graphbox.Canvas.LineTo(x2,f2);


end;
dies will einfach net funktionieren, stellt falsch dar

Fussball-Robby 17. Mär 2008 20:57

Re: lineare gleichung zeichnen
 
Was zeichnet er denn falsch, bzw. zeichnet er überhaupt was?

Mfg

PS.: ax²+bx+c ist imho eine quadratische und keine lineare Funktion :wink:

mortality 17. Mär 2008 21:02

Re: lineare gleichung zeichnen
 
die abletung davon ist imho eine lineare

zeichnet falsch z.bsp für y=2x macht er y=(1/2)*x

mortality 17. Mär 2008 21:47

Re: lineare gleichung zeichnen
 
könnte mir wenigstens jemand einen unicode geben den ich dann für meinen einsetzen kann???
hab ich was an mir das euch abschreckt....keiner will antworten

Die Muhkuh 17. Mär 2008 21:53

Re: lineare gleichung zeichnen
 
Nein, aber es sind nicht alle 24/7 für Dich da. Und Pushen ist erst nach 24h erlaubt.

mortality 17. Mär 2008 22:01

Re: lineare gleichung zeichnen
 
tja bloss morgen ist die hilfe sinnlos...denn ich muss morgen abgeben

Die Muhkuh 17. Mär 2008 22:02

Re: lineare gleichung zeichnen
 
Sorry, aber ist das unser Problem, wenn Du nicht gebacken bekommst, Deinen Grips ein paar Tage früher einzuschalten bzw. früher mit der gestellten Aufgabe anzufangen?

mortality 17. Mär 2008 22:08

Re: lineare gleichung zeichnen
 
es ist nicht dein problem,was du machst ist einfach nur spam...such dir ein chat und belehre dort ander leute..
ich hab vor einem tag einen andere thread erstellt auf den keiner geantwortet hat...

marabu 17. Mär 2008 22:12

Re: lineare gleichung zeichnen
 
Hallo,

Zitat:

Zitat von mortality
... da mir keiner auf mein vorherigen topic antwortet ...

manchmal musst du etwas Wartezeit einkalkulieren.

Was die Berechnung von Funktionswerten für den Graph der Kurve oder ihrer Ableitung angeht, so solltest du deinen Code etwas allgemeingültiger auslegen. Dabei helfen dir Funktionen und Prozeduren - es muss nicht alles in die Ereignisprozedur eines Buttons gequetscht werden. Kennst du schon das Horner-Schema? Damit kannst du Funktionswertberechnung und beliebige Ableitungen extrem elegant kodieren. Speziell Polynome mit ganzzahligen Exponenten lassen sich besonders einfach implementieren.

Noch etwas zu deinem Code: Du solltest nicht verschiedene Dinge miteinander vermengen. Trenne die Funktionswertberechnung von der Koordinatentransformation, sonst erkennt man nicht sofort was da passieren soll. Und je sorgfältiger du die Namen für deine Variablen wählst, desto eher ist ein Leser deines Threads bereit sich in dein spezielles Problem einzuarbeiten.

Freundliche Grüße vom marabu

mortality 17. Mär 2008 22:23

Re: lineare gleichung zeichnen
 
also irgendwie will es auch nicht

Delphi-Quellcode:
function Horner(x: integer; coeff: array of Integer): integer;
var
  i: Integer;
begin
  Result := 0;
  for i := Low(coeff) to High(coeff) do
    Result := Result * x + coeff[i];
end;
rocedure TForm1.AbleitungClick(Sender: TObject);
var f1,f2,x1,x2:integer;
begin
new_b:=a*2;
new_c:=b;
abl_ausg.Visible:=true;
if new_c=0 then
  Abl_ausg.Caption:='y=f(x)='+floattostr(new_b)+'x'
   else
     Abl_ausg.Caption:='y=f(x)='+floattostr(new_b)+'x'+'+'+floattostr(new_c);
if a=0  then
 begin
  Abl_ausg.Caption:='y=f(x)='+floattostr(new_c)
 end;
 graphbox.Canvas.pen.color :=clRed; //Ändert die Farbe des Stift-Objekts Pen
 graphbox.Canvas.pen.width :=1; //Ändert die Strichstärke des Stift-Objekts Pen

 x1:= Round(graphbox.width/2)-bereich;
 x2:= Round(graphbox.width/2)+bereich;
 f1:=Round(graphbox.height/2)+horner(x1,new_b);
 f2:=Round(graphbox.height/2)-horner(x2,new_c);
 graphbox.canvas.MoveTo(x1,f1);
 graphbox.Canvas.LineTo(x2,f2);



end;
aber danke das wenigsten jemand richtung MEIN problem geantwortet hat


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz