Используя С++ и .net, у меня есть поток данных, который я хочу отобразить в виде прокручиваемого изображения. Каждый раз, когда я получаю новые данные, я хочу добавить их в виде новой строки (128x1 пикселей) и прокрутить предыдущее содержимое в одну сторону.
Моя первая попытка решить эту проблему заключалась в рендеринге всего набора данных каждый раз, когда я получал новую строку. Это сработало, но было слишком медленно, поэтому я думаю, что было бы разумнее записывать в какой-то буфер (может быть, в растровое изображение?). Проблема в том, что я не понимаю, как я могу это сделать; Объекты Graphic
позволяют вам довольно хорошо рисовать, но я не вижу очевидного способа указать моему элементу управления использовать объект Bitmap
в качестве буфера? Точно так же я не вижу способа рисовать на растровом изображении, которое я мог бы затем вывести на экран.
Это должно быть возможно, но мой google-foo пока не подвел меня...
[Edit1] Чтобы уточнить, данные представляют собой спектрограмму. На следующем изображении показано, чего я пытался достичь:
Данные, которые я рисую, поступают в виде массивов с плавающей запятой. Нет ничего, что ограничивало бы количество, которое я получу, поэтому я просто хочу забыть данные, поскольку они выпадают за пределы графика.
В настоящее время я наследую от System::Windows::Forms::UserControl
, но могу ли я переключиться на что-то другое, если есть лучшая альтернатива?