В современном мире многие процессы и явления требуют постоянного контроля. И на производстве, и в химической лаборатории необходимо отслеживать различные параметры, будь то температура, плотность вещества или концентрация газа. Однако, недостаточно просто считывать показания с датчиков и измерительных приборов — требуется представить это в форме, простой для восприятия нашим мозгом. Для подобных целей используются графики, схемы и карты, построение которых происходит программным обеспечением в реальном времени. Именно об этом программном обеспечении и пойдет речь в этой статье, точнее, об одном из программных пакетов.

Чего же особенного может предложить этот конкретный программный пакет?
В среде, где требуется анализ и графическое представление данных в реальном времени, наиболее ценным качеством программы становится скорость работы. От оптимизации и производительности кода может зависеть точность измерений, отображаемая в графике, частота обработки данных и функциональность самой визуализации(карта высот или полетов гораздо нагляднее выглядит в трехмерном представлении, при этом ею проще пользоваться).

Итак, несколько лет назад на основе платформы .NET компания Arction Ltd представила LightningChart — результат многолетней работы по низкоуровневой оптимизации на DirectX, вплоть до уровня HLSL шейдеров.
Как описано выше, наиболее важным качеством API для визуализации является производительность. Насколько же быстрая LightningChart? Обратимся к бенчмаркам и сравним скорость LightningChart и кода, написанного на стандартных библиотеках GDI/GDI+ и System.Windows.Media:

Разница в скорости более чем значительная. Однако, LightningChart предоставляет также расширенные возможности по созданию 2D и 3D графиков и работе с картами. Существуют другие API с близким функционалом. Возможно, в гонке с LightningChart они хорошо себя покажут?



Впечатляющий результат, отрыв от конкурентов на порядки. Стоит также отметить, что многие подобные API используют даунсемплинг в процессе визуализации, то есть в то время как вы предоставляете к программе доступ к массиву из 50 000 точек, она берет средние значения соседних точек и отображает на графике всего лишь 25 000 (16 666, 12 500...) для ускорения рендеринга. LightningChart не использует даунсемплинг, и отображает все точки, при этом демонстрируя отличную производительность. С более подробными результатами тестов можно ознакомиться здесь.
Как же работать с LightningChart? LC является простой в освоении и работает как высокоуровневый графический движок, предоставляя удобный доступ к всевозможным методам отображения информации. Очень большое внимание разработчики уделили простоте и компактности кода. Рассмотрим простейший пример статичной диаграммы со случайными данными:

Пакет LC поддерживает как Windows Forms, так и WPF, однако первый вариант уже порядком устаревает, поэтому обратимся к WPF.
Выбрав в качестве среды разработки Visual Studio (раз уж мы пишем на .NET) и убедившись, что в систему установлен LightningChart SDK, который можно бесплатно попробовать здесь, создадим новый WPF-проект на C#. После этого добавим компонент «LightningChartUltimate» (в случае, если вы пользуетесь Ultimate версией) из тулбокса на пустую форму. Присутствует также возможность динамически создать объект LightningChartUltimate и прикрепить к форме, однако в данном туториале мы её не коснемся.


В первую очередь редактируем XAML-код, чтобы при масштабировании окна график также масштабировался. В результате код выглядит примерно так:
Далее нам остается лишь настроить график и заполнить его случайными данными, отредактировав MainWindow.xaml.cs:
Компилируем, запускаем и получаем желаемый результат:

Различные туториалы можно найти здесь.
На данный момент LightningChart применяется в самых разных сферах, начиная от химических лабораторий и тяжелой промышленности и заканчивая атомными станциями и аэрокосмическими исследованиями. Скорость обработки и вывода данных, недоступная с помощью любого другого программного продукта, позволяет увеличивать эффективность работы предприятий и повышать качество исследований.

Основные особенности LightningChart Ultimate:
Для ознакомления есть бесплатная 30-дневная версия программного пакета, включающая в себя инструменты для разработки и демонстрационное приложение.
Каждому покупателю программного пакета из России и СНГ Arction предоставляет скидку 10% на продукцию компании.
Более подробная информация доступна на сайте lightningchart.com. В штате компании есть русскоязычные сотрудники, способные дать техническую консультацию.

Чего же особенного может предложить этот конкретный программный пакет?
В среде, где требуется анализ и графическое представление данных в реальном времени, наиболее ценным качеством программы становится скорость работы. От оптимизации и производительности кода может зависеть точность измерений, отображаемая в графике, частота обработки данных и функциональность самой визуализации(карта высот или полетов гораздо нагляднее выглядит в трехмерном представлении, при этом ею проще пользоваться).

Итак, несколько лет назад на основе платформы .NET компания Arction Ltd представила LightningChart — результат многолетней работы по низкоуровневой оптимизации на DirectX, вплоть до уровня HLSL шейдеров.
Как описано выше, наиболее важным качеством API для визуализации является производительность. Насколько же быстрая LightningChart? Обратимся к бенчмаркам и сравним скорость LightningChart и кода, написанного на стандартных библиотеках GDI/GDI+ и System.Windows.Media:

Разница в скорости более чем значительная. Однако, LightningChart предоставляет также расширенные возможности по созданию 2D и 3D графиков и работе с картами. Существуют другие API с близким функционалом. Возможно, в гонке с LightningChart они хорошо себя покажут?



Впечатляющий результат, отрыв от конкурентов на порядки. Стоит также отметить, что многие подобные API используют даунсемплинг в процессе визуализации, то есть в то время как вы предоставляете к программе доступ к массиву из 50 000 точек, она берет средние значения соседних точек и отображает на графике всего лишь 25 000 (16 666, 12 500...) для ускорения рендеринга. LightningChart не использует даунсемплинг, и отображает все точки, при этом демонстрируя отличную производительность. С более подробными результатами тестов можно ознакомиться здесь.
Как же работать с LightningChart? LC является простой в освоении и работает как высокоуровневый графический движок, предоставляя удобный доступ к всевозможным методам отображения информации. Очень большое внимание разработчики уделили простоте и компактности кода. Рассмотрим простейший пример статичной диаграммы со случайными данными:

Пакет LC поддерживает как Windows Forms, так и WPF, однако первый вариант уже порядком устаревает, поэтому обратимся к WPF.
Выбрав в качестве среды разработки Visual Studio (раз уж мы пишем на .NET) и убедившись, что в систему установлен LightningChart SDK, который можно бесплатно попробовать здесь, создадим новый WPF-проект на C#. После этого добавим компонент «LightningChartUltimate» (в случае, если вы пользуетесь Ultimate версией) из тулбокса на пустую форму. Присутствует также возможность динамически создать объект LightningChartUltimate и прикрепить к форме, однако в данном туториале мы её не коснемся.


В первую очередь редактируем XAML-код, чтобы при масштабировании окна график также масштабировался. В результате код выглядит примерно так:
<Window x:Class="Arction_tutorial1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" xmlns:lcu="http://www.arction.com/schemas/">
<Grid UseLayoutRounding="True">
<lcu:LightningChartUltimate HorizontalAlignment="Stretch" Name="lightningChartUltimate1" VerticalAlignment="Stretch" Margin="0" />
</Grid>
</Window>
Далее нам остается лишь настроить график и заполнить его случайными данными, отредактировав MainWindow.xaml.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
//Добавляем библиотеки нашего API, используемые в данном примере
using Arction.WPF.LightningChartUltimate;
using Arction.WPF.LightningChartUltimate.Views.ViewXY;
using Arction.WPF.LightningChartUltimate.SeriesXY;
using Arction.WPF.LightningChartUltimate.Axes;
//Не забудьте использовать namespace, аналогичный названию проекта в VS
namespace Arction_tutorial1
{
/// <summary>
/// Функционал MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
InitializeChart();
}
private void InitializeChart()
{
//Инициализировать чарт
lightningChartUltimate1.BeginUpdate();
//Записываем двухмерный компонент LightningChart в отдельную переменную для простоты работы
ViewXY chartView = lightningChartUltimate1.ViewXY;
//Записываем объект стандартной X-оси в отдельную переменную для удобства
AxisX axisX = chartView.XAxes[0];
// Задаем диапазон отображаемых значений
axisX.SetRange(0, 20);
axisX.ValueType = AxisValueType.Number;
//Проводим аналогичную операцию с Y - осью
AxisY axisY = chartView.YAxes[0];
axisY.SetRange(0, 100);
//Добавляем линейный график
PointLineSeries pls = new PointLineSeries(chartView, axisX, axisY);
pls.PointsVisible = true;
//Получаем случайные данные
Random rand = new Random();
const double dInterval = 1;
int iPointCount = (int)((axisX.Maximum - axisX.Minimum) / dInterval) + 1;
SeriesPoint[] aPoints = new SeriesPoint[iPointCount];
for (int iPoint = 0; iPoint < iPointCount; iPoint++)
{
aPoints[iPoint].X = (double)iPoint;
aPoints[iPoint].Y = 100.0 * rand.NextDouble();
}
//присваиваем графику массив полученных данных
pls.Points = aPoints;
//Добавляем график в двухмерный компонент
chartView.PointLineSeries.Add(pls);
//Применяем изменения, перерисовывая график
lightningChartUltimate1.EndUpdate();
}
}
}
Компилируем, запускаем и получаем желаемый результат:

Различные туториалы можно найти здесь.
На данный момент LightningChart применяется в самых разных сферах, начиная от химических лабораторий и тяжелой промышленности и заканчивая атомными станциями и аэрокосмическими исследованиями. Скорость обработки и вывода данных, недоступная с помощью любого другого программного продукта, позволяет увеличивать эффективность работы предприятий и повышать качество исследований.

Основные особенности LightningChart Ultimate:
- Программные компоненты на платформе .NET
- Поддержка WPF и Windows Forms
- Наибольшая скорость визуализации среди конкурирующих продуктов
- Простота в освоении
- Использование низкоуровневой HLSL-оптимизации
- Продвинутые инструменты 2D и 3D визуализации
- Углубленная поддержка карт и геологических данных
- Полная техническая поддержка клиентов
Для ознакомления есть бесплатная 30-дневная версия программного пакета, включающая в себя инструменты для разработки и демонстрационное приложение.
Каждому покупателю программного пакета из России и СНГ Arction предоставляет скидку 10% на продукцию компании.
Более подробная информация доступна на сайте lightningchart.com. В штате компании есть русскоязычные сотрудники, способные дать техническую консультацию.