![]() |
Funktionsgraph zeichnen
Moinsen! :)
Ich wollte mich mal an eine neue Aufgabe wagen und habe auch schon die passende von einem Lehrer bekommen! Und zwar, soll ich für den Physikunterricht versuchen, den Funktionsgraphen der Funktion y=1/(4d)*(Ua/Ub)*x² zeichnen zu lassen (Ablenkung der Elektronen in einer Elektronenröhre). Ich habe allerdings noch nicht mit dem Zeichnen von Graphen bisher gearbeitet und weiß eigtl nicht viel mehr, als dass ich eine TBitMap brauche. Ich brauche somit 2 Achsen (X und Y im positiven Bereich) und der Graph müsste von rechts beginnen zu laufen, statt wie normal von links (damit es mit unserem Versuchsaufbau übereinstimmt!). Nun fehlen mir allerdings grad mal sämtliche Ansätze, weswegen ich dazu eure Hilfe benötige! :) Als Komponentenbepakete besitzte ich zusätzlich noch JCL und JVCL. Falls da was bei ist, was man dazu gut benutzen kann, wisst ihr, dass ich das habe. ^^ |
Re: Funktionsgraph zeichnen
Delphi-Quellcode:
Also: Die halbe Koordinate musst du einfach plump erraten und die andere mit der Formel ausrechnen.
for x := 0 to 100 do
begin Bitmap1.Canvas.LineTo(Bitmap1.Width-x, Bitmap1.Top - (1 div (4*d) * (Ua div Ub)*x*x)); end; |
Re: Funktionsgraph zeichnen
Svenkan,
such mal nach meinem Namen hier. Ich hab mal Quellcode gepostet fuer einen Funktiongraphen der lineare als auch quadratische Funktionen zeichnen kann. Nichts besonderers, ohne Parser oder so! Straight forward eben! |
Re: Funktionsgraph zeichnen
Ich hatte
![]() |
Re: Funktionsgraph zeichnen
Hallo Muetze,
danke schonmal für dein tolles Beispiel! Ich wollte mir das mal in Action anschauen, leider fehlt mir dazu eine dcu (FunctionPainter). |
Re: Funktionsgraph zeichnen
Nein, brauchst du nicht. Einfach oben in der Uses Liste rauswerfen. Ist nur noch ein Überbleibsel von der Umstellung. Ich habe nämlich eine kleine Komponente geschrieben, welche das Koordinatensystem kapselt und das Funktionszeichnen. Die Funktionen werden dabei per Event von aussen definiert (also immer ein y zum übergebenen x berechnen). Das Beispiel braucht diese Unit aber nicht, dass ist noch die Originalform.
|
Re: Funktionsgraph zeichnen
Ah!
Ok :) Dankeschön! ;-) |
Re: Funktionsgraph zeichnen
Hi,
ich sollte mal eine Koordinatensystemkomponente machewn, und jetzt gerade verbessere ich das Programm wegen einer neuen Schulaufgabe... ![]() Aber wenn du die Herausforderung suchst, wäre es wohl besser, wenn du dich selbst dranwagst und nicht nur mein Koordinatensystem verwendest. Die Verfahrensweise bei meinem Koordinatensystem funktioniert so, falls du es selbst nachprogrammieren willst: Erst wird eine Wertesammlung erstellt (Funktionswerte, also X- und Y-Werte, in geordneter Reihenfolge). Beim Zeichnen wird dann aus den tatsächlichen X- und Y-Werten unter Beachtung der Skaleneinteilung der Bildpubkt berechnet und die Bildpunkte werden mit LineTo (siehe malos Beispiel) verbunden. Also angenommen, ein Ursprung ist O mit dem Wertepaar O.X und O.Y, deine Einteilung ist A (A Pixel = 1 Einheit) und deine Werte sind X und Y, der Bildpunkt soll P (P.X und P.Y) werden, dann rechnest du ungefähr so:
Delphi-Quellcode:
Viel Erfolg!
P.X := O.X + Round(A * X);
P.Y := O.Y - Round(A * Y); //-, da nach oben Mfg FAlter |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:22 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