Название: Посоветуйте как нарисовать большой график ? Отправлено: remiznik от Май 21, 2010, 21:04 Нужно построить график по точкам ! Посоветуйте как это лучше реализовать ? Что использовать просто QPainter или QGraphicScene а может стоит попробовать использовать MVC ?
Название: Re: Посоветуйте как нарисовать большой график ? Отправлено: andrewshkovskii от Май 21, 2010, 21:54 QwPlot, litePlot2d (вроде) поищи на форуме
Название: Re: Посоветуйте как нарисовать большой график ? Отправлено: remiznik от Май 21, 2010, 22:16 Да я читал про них ... я не хочу нечего прикручивать ... хочу сам стандартными средстваим написать ..... не могу определиться как это реализовывать =)
Название: Re: Посоветуйте как нарисовать большой график ? Отправлено: sne от Май 21, 2010, 23:30 А большой график это сколько точек? И на сколько быстро нужно загрузить данные, а так же с какой скоростью их отрисовывать?
Название: Re: Посоветуйте как нарисовать большой график ? Отправлено: spectre71 от Май 21, 2010, 23:42 Да я читал про них ... я не хочу нечего прикручивать ... хочу сам стандартными средстваим написать ..... не могу определиться как это реализовывать =) QPainter :) Название: Re: Посоветуйте как нарисовать большой график ? Отправлено: shirushizo от Май 22, 2010, 00:35 QPainter удобней вроде будет, а MVC, думаю, только если из базы тянуть :)
Название: Re: Посоветуйте как нарисовать большой график ? Отправлено: remiznik от Май 24, 2010, 19:58 проблема в том что я QPaintor рисую ... но точек очень много больше 20т и всё сливаеться в кашу ... нужен наверно какойто алгорим выборки ?
Название: Re: Посоветуйте как нарисовать большой график ? Отправлено: alexman от Май 24, 2010, 20:54 Нужно просто при зуме прореживать точки, то есть если на один пиксель приходится несколько точек, то рисовать только одну. Кроме того необходимо учитывать bound rect.
Название: Re: Посоветуйте как нарисовать большой график ? Отправлено: sne от Май 24, 2010, 23:40 Я рисую QPainter'ом 400 000 точек, разумеется алгоритм не влоб :)
PS Сливаться все равно будут, это естесственно. Название: Re: Посоветуйте как нарисовать большой график ? Отправлено: remiznik от Май 25, 2010, 09:25 вот я бы хотел узнать .... может кто посоветует как нарисовать большой график ? алгаритмик какой подскажит =)
Название: Re: Посоветуйте как нарисовать большой график ? Отправлено: sne от Май 25, 2010, 14:57 Вся хитрость в том чтобы прорисовывать не все точки что есть, а лишь равное кол-ву пикселей. Т.е. берем множество точек которые требуется отобразить, сравниваем его с кол-вом точек доступных для рисования, и если их меньше, вычисляем макс и мин по оси ординат, в то время как абсцисса у нас неизменна. Как только абсцисса изменилась (пошел рисоваться след. пиксел), так мы рисуем вертикальную линию от мин. до макс. (или наоборот :) ) по вычисленным значениям ординат, после чего их сбрасываем и начинаем след. итерацию.
Вот так у меня выглядит отрисовка кривой: Код: void CurveData::paint(QPainter *painter) За кривость кода ногами не бить :) Попозже может быть выложу целиком проект с чуть переделанной бородатой версией Plot2D. |