wp_xyz hat geschrieben:Nein, FloodFill und Füllen eines Rechtecks/Polygons haben nur gemeinsam, dass horizontale Linien in der Füllfarbe gezeichnet werden, aber wie die Endpunkte bestimmt werden, ist grundverschieden. Beim Rechteck sind das der bekannte linke/rechte Rand, beim Polygon wird der Schnittpunkt mit dem betreffenden Polygon-Segment berechnet, beim Floodfill sucht man, je nach Verfahren, wann ein Pixel entlang der horizontalen Linie die gewünschte Randfarbe hat bzw. wann die aktuelle Hintergrundfarbe sich ändert.
Irgendwie fällt es mir schwer das zu schlucken, denn woher will FloodFill denn wissen womit ein Rechteck gezeichnet wurde?
Das
Code: Alles auswählen
PaintBox1.Canvas.MoveTo(0, 0);
PaintBox1.Canvas.LineTo(99, 0);
PaintBox1.Canvas.LineTo(99, 99);
PaintBox1.Canvas.LineTo(0, 99);
PaintBox1.Canvas.LineTo(0, 0);
ist doch das gleiche wie das
oder nicht?
Ich sollte noch erwähnen das ich mit Grafikmethoden unter Lazarus nur wenig vertraut bin, nutze sie so gut wie nie.
Aber wie auch immer, FloodFill scheint mit der Linux Version nur zur Hälfte zu funktionieren.
theo hat geschrieben:Jole hat geschrieben:Da funktioniert es auch nicht. Ich hab gedacht das OnPaint bräuchte man gar nicht mehr für die PaintBox? Unter Windows funktioniert das ohne und wenn ich unter Linux Rectangle statt LineTo verwende auch. Also irgendwie seltsam.
Es kann schon sein, dass es irgendwo "zufällig" funktioniert, aber es ist falsch und funktioniert dann halt auf anderen Plattformen nicht.
PaintBox hat keinen Buffer.
Also immer schön in OnPaint malen.
Da hab ich mich wahrscheinlich dadurch täuschen lassen das alles neu gezeichnet wurde nach dem das Fenster verborgen war.