![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
qpeHukc |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
Нужно организовать скроллер, на котором отображать некоторые данные.
Рисую Image на pictureBox-e. По мере прокрутки, сдвигаю Image и дорисовываю в конец данные. Непонятка заключается в том, что нужно отрисовывать как минимум 1 000 000 точек в 50 миллисекунд, а такое количество точек отрисовывается только в треть секунды где-то. Посоветуйте как ускорить процесс ? Не сталкивался никогда с DirectX. Может ли он мне помоч ? |
|||
|
||||
Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: 1 Всего: 62 |
Первым делом можно добавить вот такую строчку для твоего контрола:
Ты рисуешь графику по точкам на весь экран? |
|||
|
||||
qpeHukc |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
нет, у меня полоска. её размер зависит от того, насколько окно развернуто. В зависимости от развернутости окна точки накладываются друг на друга плотнее или свободнее. У точек разное значение альфа канала. Это сообщение отредактировал(а) qpeHukc - 10.4.2006, 18:19 |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
"Рисуй" в буфер (в массив) и перекидывай в битмап. Это быстрее, чем Bitmap.SetPixel и аналогичные методы Graphics-а.
-------------------- ![]() |
|||
|
||||
qpeHukc |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
попробовал реализовать рисование при помощи BitmapData. скорость не значительно увеличилась. |
|||
|
||||
Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: 1 Всего: 62 |
qpeHukc
Я думаю в каждом конкретном случае должна быть своя оптимизация. Ты говоришь что рисуешь кривую с бешанным количеством точек, может стоит попробовать уменьшить количество точек, а кривую выводить с помошью линейной интерполяции. Хотя и будет немного угловато, а если процессор позволит, то можно и сплайновую использовать. Что касается Managed DX - я его плохо знаю, т.к. нету SDK, но если хочешь могу написать пример быстрого вывода на OpenGL (CsGL wrapper). |
|||
|
||||
qpeHukc |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
у меня не кривая, а скорее такие тучи точек ![]() разрешили сегодня несколько уменьшить количество точек, но всё развно не успеваю скачал DireсtX SDK, попробую в нем полазить Это сообщение отредактировал(а) qpeHukc - 13.4.2006, 18:38 |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
qpeHukc, что означает "туча точек" ? Ты что, в случайные позиции выводишь точку ?
-------------------- ![]() |
|||
|
||||
qpeHukc |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
нет, я так сказал просто чтобы понятнее было как у меня выглядит график.
кто-нить может посоветовать пример по использованию Surface - ов и вообще про все дела с ним связанные (всякие там DoNotWait,NoSystemLock) ато пишу наобум ![]() в DirectX SDK есть кое что в сэмплах, но там не особо информативно для моего случая. и еще кое что - хочу достать данные сурфэйса для обработки вот так :
пишется : Cannot implicitly convert type 'byte[*,*]' to 'byte[]' что за byte[*,*] ? |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
-------------------- ![]() |
|||
|
||||
qpeHukc |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
ага, разобрался уже с этим
еще бы понять в каком порядке там точки расположены мне надо массив ARGB точками заполнить |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |