Страницы

Поиск по вопросам

понедельник, 19 ноября 2018 г.

Как правильно обрабатывать и рисовать большой объем данных?

Добрый день. Дано множество точек (100.000-500.000). Точки образуют кривые(волны), которые отображаются на графике. Пример графика Сейчас программа работает в такой последовательности: Считывание точек из файла Создание bitmap Преобразование значений точек в координаты bitmap Запись точек в bitmap через Graphics.DrawCurve() Если нужно закрасить часть волны (например, положительную часть) - находиться область пересечения некоторых областей через Region.Intersect и заливается. Рисование bitmap Программа работает медленно. Подходит ли GDI+ для отображения большого количества данных? Или нужно использовать что-то другое? Какая правильная последовательность действий? Как правильно и в какой момент преобразовывать значения в координаты? Что почитать? Спасибо.


Ответ

Для подобным манипуляций GDI+ вряд ли подходит. Насколько мне известно, эта технология не работает напрямую с железом, а кроме того, если не ошибаюсь, графические операции просчитываются CPU, а не GPU. За все вышесказанное на 100% не поручусь, однако объем данных , который вы указали, для GDI явно велик. Вам, вероятнее, всего, имеет смысл обратиться к DirectX или OpenGL. Если говорить о C#, то для работы с DX есть ряд оберток, плюс еще XNA (поддержка которого, правда, прекращается)

Комментариев нет:

Отправить комментарий