Problem z Double Buffer

0

Jak ze raczej nigdy nie musialem bawic sie z grafika to opuscilem te zagadnienia, czego troszke zaluje, bo teraz mam problem.
Mianowicie rysuje na TImage trajektorie ruchu pewnego przedmiotu, procedura rysujaca jest w Timerze i co 100ms rysuje pixel poprzez :

Img.Canvas.Pixels[Round(posX),Round(posY)]:=0;

a problem w tym ze nie umiem zastosowac do tego Double Buffer =( Prosze o mala pomoc.....

0

Wskazówka Nr.1: Pixels jest strasznie wolne...
Wskazówka Nr.2: Jeśli się nie mylę, to jest coś takiego, że na początku ustawiasz DubleBuffered:=true; i potem po narysowaniu dajesz SwapBuffers; czy jakoś tak. Ale głowy nie dam, bo sam takich rzeczy specjalnie nie robiłem :/.

0

Mnie DoubleBuffered przydawało się gdy komponenty, np.Image wprawiałem w ruch, żeby nie migotało. Nie wiem jaki efekt chcesz osiągnąć ale jeżeli zależy Ci na szybkości to może lepiej zamiast punktować przez Pixels użyj funkcji Polygon i tablicy dynamicznej.

0

Uzycie tablic dynamicznych i Polygon odpada, gdyz trajektoria ruchu punktu ktora rysuje na TImage moze byc niezmiernie dluga !! A im wieksz bedzie tablica tym oczywiscie wiecej pamieci bedzie potrzebowal program.

Uzylem DoubleBuffered := True przed rysowaniem i nie powiem, bo dziala.
Jedank zauwazylem ze doslownie pozera to moj procesor ! Jego zuzycie wzrasta do 100%.

Wiec stad moje kolejne pytanie. Czy da sie jakos to wyeliminowac ??

1 użytkowników online, w tym zalogowanych: 0, gości: 1