![]() |
Bitmap: nur Änderungen zeichnen
Hi!
Ich habe hier eine Paintbox und da werden Kreise drauf gezeichnet. 25x pro Sekunde bekommen die 9 Kreise eine neue Position. Im Moment ist es so, dass bei einer Änderung die gesamte Paintbox neu gezeichnet wird. Gibt es Mittel und Wege nur die Pixel neu zu zeichnen, die sich geändert haben? Ciao Frederic |
Re: Bitmap: nur Änderungen zeichnen
Nur die neuen Pixel zu zeichnen wird ein bissl schwer, aber du kannst doch ach nur den Bereich (das Rechteck) neu zeichnen, wo sich was ändert.
|
Re: Bitmap: nur Änderungen zeichnen
Hi!
Wie gesagt, es sind 8 Kreise, die quer über dem Feld liegen können und dann wäre wohl doch alles neu zu zeichnen, aber rein Interesse halber, wie würde das denn aussehen? Ciao Frederic |
Re: Bitmap: nur Änderungen zeichnen
Du mußt nur ausrechnen, in welches Rechteck alle Kreise reinpassen, welche ihre Position geändert haben.
etwa so:
Delphi-Quellcode:
Da du aber abei die alten Kreise nicht vergessen darfst, sieht es dann wohl in etwa so aus:
x1 := min(Kreis1.X, Kreis2.X, Kreis3.X ...);
y1 := min(Kreis1.Y, Kreis2.Y, Kreis3.Y ...); x2 := max(Kreis1.X, Kreis2.X, Kreis3.X ...) + Kreisdurchmesser; y2 := max(Kreis1.Y, Kreis2.Y, Kreis3.Y ...) + Kreisdurchmesser;
Delphi-Quellcode:
x1 := min(Kreis1.X, Kreis2.X, Kreis3.X ...);
y1 := min(Kreis1.Y, Kreis2.Y, Kreis3.Y ...); x2 := max(Kreis1.X, Kreis2.X, Kreis3.X ...); y2 := max(Kreis1.Y, Kreis2.Y, Kreis3.Y ...); Kreise verschieben und so... (also Kreis_.X & Kreis_.Y verändern) x1 := min(x1, Kreis1.X, Kreis2.X, Kreis3.X ...); y1 := min(y1, Kreis1.Y, Kreis2.Y, Kreis3.Y ...); x2 := max(x2, Kreis1.X, Kreis2.X, Kreis3.X ...) + Kreisdurchmesser; y2 := max(x3, Kreis1.Y, Kreis2.Y, Kreis3.Y ...) + Kreisdurchmesser; // der Bereich zwischen x1,y1 und x2,y2 wird/wurde geändert |
Re: Bitmap: nur Änderungen zeichnen
Hi!
Danke, ich werde versuchen, es nachzuvollziehen. Ciao Frederic |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:24 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