Seite 1 von 1

Graphen erstellen ( Kurvendiskussion )

Verfasst: Dienstag 5. April 2011, 15:47
von Dawinchi
Hallo liebe Python Gemeinde,
Ich bin Schüler der Jahrgangsstufe 13 und muss noch ein Info - PROJEKT fertigstellen.
Meine Aufgabe war es, die grafische Ausgabe einer Funktion zu programmieren.
Das funktioniert auch alles. Ich würde gerne noch 2 Elemente hinzufügen.
Ich schaffe es irgendwie nicht, die y - Achse einzuteilen.Was müsste ich dort verwenden?


Hier mein Programmcode :


Code: Alles auswählen

from Tkinter import *
from math import *

def zeichnen():
    s = eingabe.get()
    for i in range(8000):
        x = i/400.0 - 10
        f = eval(s)

        flaeche.create_line(x*50+500,400-f*40,x*50+501,400-f*40)
        
def Einteilung():
    for x in range (-500,500):
            flaeche.create_line(x*34+500,395,x*34+500,405)
    for x in range (0,500):
            flaeche.create_line(495,f*28,35+400,505,f*28,35+400) # Der range befehl nimmt nur 3 werte.brauche aber ja 4??

       
        
window = Tk()
window.title("Funktionsplotter")

flaeche     = Canvas(window, width=1000, height=800)
eingabe     = Entry(window, width=40)
label1      = Label(window, text='f(x)=')
button      = Button(window,text='zeichnen',command=zeichnen)
button1     = Button(window,text='X-Achse',command=Einteilung)
button2     = Button(window,text='Y-Achse',command=Einteilung)

flaeche.pack()
label1.pack(side=LEFT)
eingabe.pack(side=LEFT)
button.pack(side=RIGHT,pady=10,padx=10)
button1.pack(side=RIGHT,pady=30,padx=30)

flaeche.create_line(0,400,1000,400,width=0.1, arrow=LAST)
flaeche.create_line(500,800,500,0,width=0.1, arrow=LAST)


window.mainloop()



Ich muss mein Programm auch nächste Woche vorstellen.
Ich kann meine Funktion "def zeichnen" aber schlecht erklären.Ich habe ziemlich lange herumgebastelt, bis es funktioniert hat. :lol:

Also ich würde das meinen Mitschülern so erklären:
Ich lese über mein entry die Funktion ein.
Über die eval ( ) Funktion wird der zugehörigen y - Wert berechnet [ f(x) ].
Die for - Anweisung bildet die Grenze der x - Werte.( bis i halt 7999 ist )
Also bei x = 10!
Aber wie soll ich die Formel erklären.Ich habe mich bei der Berechnung auf den Ursprung - also 0-Punkt - bezogen.Ich habe die 8000 Bildpunkte geteilt - 4000 :) - und dann durch die Hälfte der y - Achse (400 )geteilt. Die -10 kommen daher, dass 4000/400 = 10 ergibt.Da ich mich aber im Nullpunkt befinde, also noch -10. Dann hats erstaunlicherweise funktioniert.
Vielleicht hat ja jemand eine bessere Erklärung.
Ich wäre für Vorschläge echt dankbar

Re: Graphen erstellen ( Kurvendiskussion )

Verfasst: Dienstag 5. April 2011, 20:35
von daemonTutorials
Eine Frage: Geben die User eine Formel ein?
Du kannst das ja anders über 2 oder 3 Eingaben machen und die Formel mit Python erstellen lassen.

Re: Graphen erstellen ( Kurvendiskussion )

Verfasst: Dienstag 5. April 2011, 20:51
von Dawinchi
Also die funktion wird über das entry EINGABE vom user eingegeben. Die Funktionen sind ja durch die Optionen von Import begrenzt.

Re: Graphen erstellen ( Kurvendiskussion )

Verfasst: Dienstag 5. April 2011, 21:06
von Dawinchi
Achso ich glaube, ich weiß wo das problem liegt.Ich hab das in der schule mit python 2.6 geschrieben. Mit der neuesten Version habe ich das noch nicht probiert.

Re: Graphen erstellen ( Kurvendiskussion )

Verfasst: Sonntag 10. April 2011, 17:35
von daemonTutorials
Jo! Python3.1 ist nicht abwärtskompatibel mit Python 2.6. Daran wird es wohl liegen.
Aber finde ich persönlich gut so!