Способ отрисовки
От: SanyaVB  
Дата: 01.04.11 11:21
Оценка:
Есть вот такой значок.

 Path path = new Path();
 path.Data = Geometry.Parse("M0,-7 l0,12 -1,-1 0,-1 l-2,-4 3,1  M0,9 A9,9,360,1,1,0.01,9 M0,-9 v-5 M9,0 h5 M0,9 v5 M-9,0 h-5")


начал генерировать таких значков 500 штук и двигать их, чтобы посмотреть скорость отрисовки. получил 20 FPS

Тогда решил отрисовку делать через Visual

public void Draw(DrawingContext context)
{
    context.DrawGeometry(m_brush, m_pen, Geometry.Parse("M0,-7 l0,12 -1,-1 0,-1 l-2,-4 3,1  M0,9 A9,9,360,1,1,0.01,9 M0,-9 v-5 M9,0 h5 M0,9 v5 M-9,0 h-5"));
}


Удивительный эффект, но производительность упала в двое.
Задача состоит в том чтобы отобразить множество графических объектов такого рода на Canvas и перемещать их в реальном времени. Можете посоветовать способ как производительней написать?

PS: был проделан тест: рисовал линии с помощью Line и c помощью DrawingVisual. при 25 FPS в первом случае рисовалось 200 линий, а во втором 1400.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.