cześć,
Uczę się WinApi a przy okazji chcę stworzyć pewną aplikację, której zadaniem będzie m.in. narysowanie wykresu w polu roboczym okna.
Mam jednak następujący problem:
powiedzmy, że mam pole robocze do namalowania wykresu o wymiarach: wysokość 300 i szerokość 500 pikseli. Chciałbym w tym polu narysować wykres z pobranych danych, które trzymam w tablicy double* variables;.
Danych może być więcej niż 500 jak również może być ich mniej. Jeśli jest więcej to należy je "jakoś" przetworzyć tak, by było ich max 500 - bo tyle jest w okienku pikseli i więcej być nie może.
Pytanie: jak tego dokonać? Jeśli danych będzie 1000 to zadanie jest łatwe - wystarczy obliczyć średnią z 1000/500 sąsiadujących zmiennych i zapisać je do 2 razy mniejszej tablicy. A co jeśli będzie 553 dane? Jak je jakoś sensownie wyskalować? Jak z 553 danych zrobić 500 lub np. 250? Jak je wyskalować?
Podobny problem dotyczy, gdy danych będzie mniej, np. 320. Jeśli policzę 500/320to wyjdzie mi, że powinienem wstawiać daną co 1,56 piksela - a przecież to niemożliwe -.-. Jeśli wstawię jedynie 320 danych to będę miał prawie 2/5 niewykorzystanego wykresu, co będzie się niezbyt ładnie komponować. Pytanie więc jak mniejszą ilość danych wyskalować - tak, by ich łączna liczba była podzielna przez szerokość okna - np. 500, 250, 100 itp.
Z góry dziękuję za naprowadzenie mnie na rozwiązanie tego problemu.