Thema: Delphi Bug in PaintBox

Einzelnen Beitrag anzeigen

BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Bug in PaintBox

  Alt 8. Mär 2009, 21:30
kannst du mal ein Bild zeigen, von deinem Problem?

Was ich nicht ganz verstehe ist deine Zeichenfunktion:
PaintBox1.Canvas.LineTo(xx,yy*(-1)+593); Nach meinen Kenntnissen hat eine Parabel folgende Form: y = ax^2 + bx + c

und eine umgekehrte Parabel die Form y = -abs(ax^2 + bx + c) // grob gesehen, gemeint ist, die Funktionswerte sind negativ. Deswegen sollte bei deiner x-Koordinate nur x stehen nicht xx und bei deiner y-Koordinate steht ax^2 + bx + 593.

Vieleicht ist der Befehl Lineto hier weniger gut geeignet, als vieleicht die Pixel. Sprich:
PaintBox1.Canvas.Pixels[x,ax^2 + bx + c] := clred; // Farbe der Linie hier angeben dann sollte der Fehler mit der überflüssigen Linie (egal, wo die herkommt) eigentlich umgangen sein. Die Funktion könntest auch gut in eine einfache For-Schleife stecken, ala:

for i := 0 to 601 do PaintBox1.Canvas.Pixels[x,ax^2 + bx + c] := clred; du solltest natürlich darauf achten, dass du nur ganze Zahlen als Argument für die Koordinaten des Pixels übergeben solltest. Du musst also die y-Koordinate am besten mit round- oder trunc-Funktion absichern, wenn du dir nicht sicher bist, ob dies gewährleistet ist.
  Mit Zitat antworten Zitat