AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Graphzeichner

Ein Thema von Diff05 · begonnen am 17. Apr 2007 · letzter Beitrag vom 7. Mai 2007
Antwort Antwort
Seite 5 von 5   « Erste     345   
Benutzerbild von delphilover
delphilover

Registriert seit: 19. Apr 2007
13 Beiträge
 
#41

Re: Graphzeichner

  Alt 24. Apr 2007, 20:26
bei mir aber nicht:S
Bitte um Hilfe:S:S:S
i love delphi baluuuuuuuuuuuuuuuuuu der bär ist cooooooooool

  Mit Zitat antworten Zitat
Diff05

Registriert seit: 17. Apr 2007
9 Beiträge
 
#42

Re: Graphzeichner

  Alt 7. Mai 2007, 18:15
Also, bis jetzt haben wir die beiden Achsen & die Einteilungen gezeichnet. Jetzt stehen wir vor dem nächsten Problem: wie machen wir jetzt die Beschriftung?
Mit dem Text.Out hat irgendwie nicht ganz geklappt v.v

Kann uns das vll noch mal wer erklären?
  Mit Zitat antworten Zitat
BrightAngel

Registriert seit: 13. Mär 2007
130 Beiträge
 
#43

Re: Graphzeichner

  Alt 7. Mai 2007, 18:26
Zum Thema Parser:
Vorschlag
  Mit Zitat antworten Zitat
Diff05

Registriert seit: 17. Apr 2007
9 Beiträge
 
#44

Re: Graphzeichner

  Alt 7. Mai 2007, 18:31
sorry, aber keine ahnung was nen parser ist..
  Mit Zitat antworten Zitat
BrightAngel

Registriert seit: 13. Mär 2007
130 Beiträge
 
#45

Re: Graphzeichner

  Alt 7. Mai 2007, 18:39
Ein Funktionsparser ist in dem Fall die Zerlegung einer Funktion, die z.B. in ein TEdit-Feld eingetragen wird, die anschließend berechnet wird. Also aus Y=2*x+10 wird beim Zeichen erst der Wert der x-Koordinate eingegeben z.B. 3. Der wird in die gleichung eingesetzt; also Y=2*3+10; dann nur noch rechnen(jetzt kommt die eigentliche Aufgabe des Parsers); Also Zwischenrechnung
2*3=6
=> Y=6+10
=> 6+10=16
=> Y=16
=> dem Plotter wird als Koordinaten P(3|6) übergeben.
  Mit Zitat antworten Zitat
BrightAngel

Registriert seit: 13. Mär 2007
130 Beiträge
 
#46

Re: Graphzeichner

  Alt 7. Mai 2007, 18:44
Und wie in dem 23sten Eintrag meines Links beschrieben, braucht man für die Zwischenrechnungen immer nur zwei Faktoren(Summanden,etc). So lässt sich jede Funktion berechnen.
Weiterer Vorteil: wenn man die eingegebene Gleichung auf unbekannte Zeichen wie z.B. 'a' untersucht, so könnte man z.B. dem Programm beibringen, es als Constante zu gebrauchen und den Benutzer per Eingabefeld(z.B. weitere TEdit...) aufforden für die Constanten einen Wert einzugeben.
  Mit Zitat antworten Zitat
Diff05

Registriert seit: 17. Apr 2007
9 Beiträge
 
#47

Re: Graphzeichner

  Alt 7. Mai 2007, 18:46
und wie schreib ich sowas?
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#48

Re: Graphzeichner

  Alt 7. Mai 2007, 19:14
@Diff:

Hier mal 2 Proceduren wie man auf einfachste Art Lineare und Quadratische Funktionen 3. Grades auf einem Image ausgeben kann...

ImgGraph ist ein TImage

Delphi-Quellcode:
procedure TFrmMain.BtnLinearDrawingClick(Sender: TObject);
var
  M, T: Real;
begin
  ImgGraph.Canvas.Pen.Color := clRed;
  M := StrToFloat(EdtSlope.Text);
  T := StrToFloat(EdtYIntercept.Text);
  Strecke(-5, M * (-5) + T, 5, M * 5 + T);
end;
 
procedure TFrmMain.BtnSquareDrawingClick(Sender: TObject);
var
  A, B, C, X1, X2, Y1, Y2: Real;
begin
  ImgGraph.Canvas.Pen.Color := clgreen;
  A := StrToFloat(EdtA.Text);
  B := StrToFloat(EdtB.Text);
  C := StrToFloat(EdtC.Text);
  X1 := -5;
  while X1 < 5 do
  begin
    X2:= x1 + 0.05;
    Y1:= A * X1 * X1 + B * X1 + C;
    Y2:= A * X2 * X2 + B * X2 + C;
    Strecke(X1, Y1, X2, Y2);
    X1:= X1 + 0.05;
  end;
end;
Der Rest sollte Selbsterklaerend sein... Ich hoffe doch sehr ich mach hier keine Hausaufgaben
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
BrightAngel

Registriert seit: 13. Mär 2007
130 Beiträge
 
#49

Re: Graphzeichner

  Alt 7. Mai 2007, 19:35
Ich will dir (wegen Schularbeit) den Code nicht schicken, aber ich kann es dir in Worten beschreiben. Nimm einen String. Trage die Gleichung aus deinem Editfeld ein. Zerlege den String und achte dabei auf die Matematischen Operanden, also 5+64*9 würde in einer for schleife Wörlich so aussehen.
von Zeichen 1 bis Länge der Zeichenkette: prüfe ob es eine Zahl oder ein Operant ist. Ist es eine Zahl so prüfe zuerst ob die Boolsche Variable 'IS_a' false isr; wenn ja trage sie intern in die interne string Variable 'a' (in unserem Beispiel '5')deiner function ein, andernfalls in die interne string Variable 'b', ist es aber ein Operant, so trage ihn in die string variable 'operant' ein und überprüfe ob der Boolsche Variable 'IS_a' auf True. Trifft dies nicht zu, so setze 'IS_a' auf True, um folgende Zahlenkette in 'b' einzutragen(in unserem Beispiel erst '6' und dann '4' wobei die sechs beim eintrag von '4' nicht überschreben werden darf, also muss man ein Plus dazwischen setzen). Ist die Bedingung wahr, so rufe die OperandenFunctionen mit Parametern 'a', 'b' und 'Operant' auf, um 'a' und 'b' nach dem Operanden zu verechnen. der Rückgabewert der function ist das Ergebnis der Rechnung. Um hier nicht den Fehler zu machen die Punkt vor Strichrechnung zu machen empfiehlt es sich vorher eine Variable zu setzen, bei welcher prüfung ich mich befinde (also erst Klammern, dann Potenz, dann Mal, dann geteilt, dann plus, dann minus). trifft Operand in Variable nicht mit dem Wert von 'operant' zusammen, so wird 'a' und 'b' in eine weitere string Variable mit + angehängt und der Operand dazwischen gesetzt. Ebenso verhält es sich mit dem Ergebnis der OperandenFunction.
So jetzt nur noch den gegenwärtigen Operanden in 'Operant' setzen und for schleife solange aufrufen, bis alle zu bearbitenden Operanten abgearbeitet sind. Bevor die schleife erneut Aufgerunfen wird, so muss man die Variable mit der Neuen Gleichung in dei Varible der Alte Gleichung einsetzten. Kommt man innerhalb der for schleife ans ende des Strings, so muss man bevor man den Operanden bearbeitet, eine Prüfung zu diesem Zweck machen.

Ich habe vlt. etwas umstädlich geschrieben, du kannst ja mal das machen, was du verstanden hast. Ich kann ja dann nochmal kleinigkeiten erklären.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 5   « Erste     345   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:11 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