Недавно возникла потребность выводить ещё и некий контур из большого числа точек. И тут возникла проблема.
Сам АРМ делали другие люди, я только некоторые его функции и вспомогательные программы на C.
Я Qt и его функции знаю плохо и поэтому делал по аналогии с тем, что делали другие. И вывод контура сделал примерно так
Код: Выделить всё
painter->begin(this);
for(i=1,i<n,i++)
painter->drawLine(x[i-1],y[-1],x[i],y[i]);
painter->end();
Если точек порядка 15 тысяч, то скорость вывода падает до 20 к/с
А если 45 тысяч, то вообще до 7-8 к/с. При этом top показывает загрузку этим процессом 100%.
Может быть есть функции Qt, которые позволяют выводить информацию гораздо быстрее?
В аналогичной программе, но написанной на С с использованием FreeGLUT я эту же информацию вывожу примерно таким кодом
Код: Выделить всё
glBegin(GL_LINE_STRIP);
for(i=0;i<n;i++)
glVertex2d(x[i],y[i]);
glEnd();
Есть ли в Qt функции, которые бы позволили увеличить скорость вывода в несколько раз?