szybka grafika 2D

0

Witam!

Mam następujący problem.. napisałem sobie program odbierający dane z RS232. Dane w postaci 2bitowych paczek są prezentowane na wykresie. Sprawa jest tej natury, ze paczki są wysyłane "strumieniem" z prędkoscią 115200 bps. Problemem zaczyna być prędkość rysowania wykresu. O doubleBuffered mogę zapomnić, bo wtedy gubi ponad połowę próbek. Czy jest jakaś biblioteka/komponent umożliwiająca bardzo szybkie tworzenie prostej grafiki 2D?

0

nie napisales jak rysujesz teraz? canvasem?
mozesz wrzucac dane do bufora i potem narysowac na raz wszystko.
mozesz uzyc TChart
mozesz uzyc DelphiX lub np Andorra 2D

0

tak, canvasem najprosciej jak się da:). Cimak - nie ma "potem" dane są przesyłane w czasie rzeczywistym i nie ma ich końca... tak jak w oscyloskopie. po prostu grafika i program musi się wyrobić. A sam wykres... prosty jak budowa cepa - liniowy, jedna seria danych, żadnych udziwnien. Zaraz potestuje to co zaproponowałeś, ale myśle ze Tchart to troche za duża kobyła, prędzej delphiX...

0
misiakufal napisał(a)

tak, canvasem najprosciej jak się da:). Cimak - nie ma "potem" dane są przesyłane w czasie rzeczywistym i nie ma ich końca... tak jak w oscyloskopie. po prostu grafika i program musi się wyrobić. A sam wykres... prosty jak budowa cepa - liniowy, jedna seria danych, żadnych udziwnien. Zaraz potestuje to co zaproponowałeś, ale myśle ze Tchart to troche za duża kobyła, prędzej delphiX...

potem to znaczy jak sie bufor zapelni.
zamiast rysowac w czasie rzeczywistym to co przychodzi, zbierasz dane do bufora (tablicy).
jak sie zapelni to rysujesz od razu calosc i oprozniasz bufor.

0

do 2d polecam DirectX (Direct Draw) tylko musisz zmienic FPU set jakies cxcw 087

bo bedzie zle przeliczal daty itp.

0

tak, canvasem najprosciej jak się da:)
Pokaż to „najprościej”. Bo jeżeli używasz .Pixels[] zamiast .ScanLine() to nic dziwnego że chodzi wolno.

0
Azarien napisał(a)

tak, canvasem najprosciej jak się da:)
Pokaż to „najprościej”. Bo jeżeli używasz .Pixels[] zamiast .ScanLine() to nic dziwnego że chodzi wolno.

hmm.. niby uzywam .pixels, ale za bardzo nie widze innego wyjscia. Rysuję to tak:
Jak przychodzi nowa wartosć, to czyszczę kolumnę pikseli o indeksie P za pomocą moveto i lineto, potem wstawiam w tej kolumnie 9 pikseli , które reprezenują pomocnicze podziałki osi Y, wstawiam piksel który reprezentuje oś X, i rysuję 1 linię pomiedzy wartoscią z poprzedniej kolumny i tą aktualną i zwiększam P o 1. Czyli na 1 wartość wykonuję: 2 linie i 10 razy .pixel. Z tego co pamietam, scanline skanuje obraz po osi Y od góry, a ja rysuję obraz po osi X, od lewej... A co do bufora... boje się, że w czasie rysowania całego wykresu, po zapełnienu bufora, będą się gubiły nowe wartosci... no ale zobaczymy

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