Quadratische Funktionen

Anfängerfragen zum Programmieren mit PureBasic.
Tompazi
Beiträge: 211
Registriert: 22.09.2007 15:38

Quadratische Funktionen

Beitrag von Tompazi »

f(x)=x²
Wieso wird die Kurve verkehrt dargestellt? (also mit y = 0 als Höhepunkt)

Code: Alles auswählen

Wert = 500

CreateImage(0,Wert,Wert)
StartDrawing(ImageOutput(0))
Box(0,0,Wert,Wert,$FFFFFF)
Line(0,Wert/2,Wert,0)
Line(Wert/2,0,0,Wert)

For i = -Wert*10 To Wert*10
x.f = i/10
y.f = Pow(x,2)                           ;;<<<<<<---- y = x²  ( f(x)=x² )
If y < Wert/2 And y > -Wert/2
Plot(x+Wert/2,y+Wert/2)
EndIf
Next i

StopDrawing()
SaveImage(0,"Kurve.bmp")
Wie kann ich das in einer schönen Linie darstellen anstatt der vielen Punkte?

Und wie bekomme ich einen String von z.B.: "y=x^2+3x-2" in y=Pow(x,2)+3*x-2 ?¿?

MfG Tompazi
Bild
Benutzeravatar
TomS
Beiträge: 1508
Registriert: 23.12.2005 12:41
Wohnort: München

Beitrag von TomS »

Also verkehrt herum ist es, weil der Ursprung des Images bei PB links oben liegt und die Y-Achse nach unten zeigt.

Wegen den Punkten: Entweder höhere Auflösung, oder mit Line() arbeiten.
Tompazi
Beiträge: 211
Registriert: 22.09.2007 15:38

Beitrag von Tompazi »

TomS hat geschrieben:Also verkehrt herum ist es, weil der Ursprung des Images bei PB links oben liegt und die Y-Achse nach unten zeigt.
gut das macht Sinn, Danke.
TomS hat geschrieben:Wegen den Punkten: Entweder höhere Auflösung, oder mit Line() arbeiten.
Hmm, Wie geht das mit Line?

MfG Tompazi
Bild
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Beitrag von KeyKon »

Tompazi hat geschrieben:
TomS hat geschrieben:Wegen den Punkten: Entweder höhere Auflösung, oder mit Line() arbeiten.
Hmm, Wie geht das mit Line?

MfG Tompazi
Ja immer zwei Punkte miteinander Verbinden...
(\/) (°,,,°) (\/)
Tompazi
Beiträge: 211
Registriert: 22.09.2007 15:38

Beitrag von Tompazi »

Code: Alles auswählen

Bild = 500 ; Bild Größe
Genauigkeit = 10 ; Maßstab
CreateImage(0,Bild,Bild)
StartDrawing(ImageOutput(0))
Box(0,0,Bild,Bild,$FFFFFF)
Line(0,Bild/2,Bild,0)
Line(Bild/2,0,0,Bild)
DrawText(Bild/100,Bild/100,"1 Strich = " + StrF(Genauigkeit/(Bild/20),2) + " Einheiten")

For s = 0 To Bild Step 20
 Line(s,Bild/2-2,0,4)
 Line(Bild/2-2,s,4,0)
Next s

For i = -Bild*100 To Bild*100
  x.f = i/1000
  y.f =  Pow(x,2) * (-1)  ;;<<<<<<---- y = x²  ( f(x)=x² )
  If y*Bild/Genauigkeit < Bild/2 And y*Bild/Genauigkeit > -Bild/2
    Plot((x*Bild/Genauigkeit)+Bild/2,(y*Bild/Genauigkeit)+Bild/2)
  EndIf
Next i

StopDrawing()
SaveImage(0,"Kurve.bmp")
End
Danke funktioniert jetzt

MfG Tompazi
Bild
Antworten