@APC74,
post #11
pod dołączeniu nowej serii danych czyli wskaznika na tablice oraz jej dlugosci (ilość serii może być dowolna, tylko w programie przykładowym dla prostoty jest jedna seria (wykres) obliczana jest maximum i minimum dla dodanej serii. podczas wyswietlania jesli jest włączone automatyczne okreslanie xmin, ymin, xmax, ymax obliczone zostaje minimum z każdej serii i minimum globalne staje się początkiem a maximum globalne końcem zakresu wyświetlania danych. Jeśli nie ma włączonego automatycznego obliczania zakresu wyświetlania minimum/maximum dla x/y nie jest obliczane i wyświetlamy jest wykres w zakresach podanych z palca.
Jak to się ma do tego co napisałeś. Ano tak, że obecnie obliczanie minimum/maximum serii odbywa się tylko podczas dołączania nowej serii do wykresu więc jeśli jakiś element źródłowej tablicy zostanie zmieniony i wyjedzie poza zakres to nie zostanie on narysowany. Jeśli natomiast zostanie on (lub cała grupa) zmieniona i miesci sie w zakresie to się ładnie narysuje. W skrócie można powiedzieć, że dla strumienia danych (o ile jego dlugość bedzie stała) nie ma problemu z rysowaniem. Trzeba tylko odrysowywać co zmianę strumienia obiekt wykresu no i modlić się żeby za mocno nowe dane nie wystawały za zakres.
Można także dodać metodę, która explicite przeliczy maxima i minima dla danej serii danych w razie potrzeby (nie ma sensu przeliczać za każdym odrysowaniem bo by zżarło za dużo czasu) szczególnie dla dużej ilości serii i ich sporej długości.
Ostatnią rzeczą, na którą trzeba zwrócić uwagę jest sam proces rysowania. Obecnie opiera się standardowe systemowe Draw, Move, Text oczywiście nie korzystające z penów tylko z nowego trybu bezpisakowego gdzie możemy podać kolor ARGB zamiast odwoływać się do jakiegoś dziwnego numerku w palecie kolorów. Muszę nad tym siąść i zastanowić się co by się dało przyspieszyć i jednocześnie zaimplementować prosty rasteryzator.
Jesli chodzi o prędkość puszczałem w pętli sin(x+dt) dt = (0..100) co by się przesuwał jako animacja i działało dobrze ale nie bardzo dobrze :)
Ostatnia edycja: 22.11.08 23:25:50