Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Визуализация потока данных


Автор: Leviafan 30.6.2009, 23:15
Attention! Следующая постановка не основывается на реальной задаче и является лишь примером для обсуждения.

Возьмём ветряную мельницу. Поворот оси на 3,6 градуса создаёт прерывание, которое порождает цепочку событий в системе реального времени. Есть приложение, которое использует технологию WPF для описание пользовательского интерфейса оператора. Приложение взаимодействует с системой реального времени по сети. Требуется отображать оператору, который, возможно, сидит в самой дальней от мельницы точке деревенской окрестности, как можно более точную картинку текущего положения её крыльев.
Система реального времени всегда вежливо отвечает на запрос о текущем угле поворота оси мельницы. Однако, при определённой скорости вращения крыльев изображение на экране начинает мерцать и становится скачкообразным (слишком быстрые перемещения, частота которых выше половины частоты развёртки монитора).

Как организовать наиболее корректный процесс визуализации в WPF? Использовать OnPaint как в GDI или как-то напрямую работать с DirectX + включить двойную буфферизацию?

Автор: Partizan 3.7.2009, 01:26
Leviafan, есть возможность выложить проект, демонстрирующий поведение выложить?

Автор: nikitao 3.7.2009, 03:23
Leviafan, тут просто недостаточно быстрый алгоритм....без самого алгоритма сложно сказать как помочь. Можно конечно сделать шаг конем и поставить более мощную машину оператору , но это наверно нечестно smile.  Вообще .net не очень дружит с системами реального времени ( критичными ко времени исполнения кода ) , а тем более такие штуки как WPF.

Автор: Leviafan 5.7.2009, 20:19
Меня интересуют следующие вопросы:
- Как в WPF отображается процесс? Вот получил я по сети некоторые значения, вычислил угол поворота, а дальше нужно это данное привязать к отображению, чтоб на тот же угол был повёрнут, грубо говоря, эллипс. Это делается через привязку к CLR или через какую-то хитрую анимацию?  smile 
- Насколько быстро выбранные процессы будут работать? При какой частоте исполняющая система не сможет корректно отобразить эллипс, вообще такое возможно? И здесь ответ зависит от первого блока.

Добавлено @ 20:24
Partizan, могу накатать конкретный примерчик, хотя суть - в текущем ответе.

Автор: Partizan 5.7.2009, 20:57
Leviafan, ага, примерчик был бы не плох

Автор: AndZho 5.7.2009, 23:39
Я не вникал в суть, но может http://microsoft.cs.msu.su/Projects/Pages/DynamicDataDisplay.aspxбудет интересно?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)