Я использовал Подрывной, так как я обновил до Ganymede. Я использую его с Eclipse в Linux (Ubuntu и Ядро Fedora), Windows XP и Mac OS X.5. Кроме некоторых проблем, получающих Подрывной деятельности 1.5.1 пользоваться правильными библиотеками безопасности в соответствии с Mac OS, у меня не было проблем. Учитывая, что это было принято как технологический проект Eclipse, я склонен сделать свои ставки на него, с точки зрения долгосрочных надежд.
Я предполагаю, что пример кода - это 1) тест для проверки чего-то, что на самом деле не является образцом, или 2) домашнее задание.
Попробуйте переопределить OnRender и выполните что-то вроде:
Pen drawingPen = new Pen(Brushes.Black, 1);
protected override void OnRender(DrawingContext dc)
{
dc.DrawRectangle(Background, null, new Rect(RenderSize));
double x=rand.Next(300);
double y = rand.Next(300);
for (double i = 0; i < 1000; i = i + 0.1)
{
y = 100 + rand.Next(100);
dc.DrawLine(drawingPen, new Point(i, x), new Point(i + 1, y));
x = y;
}
}
или что-то с реальными данными, подумайте, действительно ли вам нужно отображать каждую точку в зависимости от разрешения визуального контекста. (Если ваша шкала от 0 до 10 и вы набираете 0,0001,0,00015 баллов, действительно ли они отличаются по вашей шкале)
Чарльз Петцольд делает именно это. Это даже быстрее на моем хосте (<0,3 секунды), а точки даже DataBound !! ;)
Тамир Хасон делает то же самое, с линиями и более подробно описывает производительность стиля Bitmap WPF здесь .
Рико Мариани дает некоторые рекомендации по высокопроизводительной 3D-графике. По сути, использование типов значений может улучшить вашу пропускную способность, если хорошо продумано.
Цзяньчжун Чжан дает мои новые любимые руководства по этой теме, трехмерный график рассеяния, несколько десятков тысяч анимированных и интерактивных точек данных.
Рассматривали ли вы XNA ? Использование видеокарты ускорит процесс.
Следует ли выбирать строки? Вы можете рисовать линии на изображении, а затем передавать их в качестве источника для элемента управления Image. Он будет рисовать быстрее, но вы потеряете способность взаимодействовать с линиями.