Здравствуйте, _novice_, Вы писали:
__>Надо отображать большие массивы одномерных данных — траекторий. __>Траектории надо отображать с бОльшей или мЕньшей степенью подробности (детализации). __>Например в траектории 10 тыс точек, а надо нарисовать ломаную из 256-ти отрезков.
__>Какие тут есть подходы?
Возможно, поможет кластеризация близких вершин, стягивание группы близких точек в одну, и соединение таких прореженных точек ломаной.
Есть такая программа — gpsbabel, там есть всякие фильтры, применяемые к трекам, в том числе прореживание маршрута, сглаживание, etc. Загляни в исходники.
Здравствуйте, _novice_, Вы писали:
__>Надо отображать большие массивы одномерных данных — траекторий. __>Траектории надо отображать с бОльшей или мЕньшей степенью подробности (детализации). __>Например в траектории 10 тыс точек, а надо нарисовать ломаную из 256-ти отрезков.
__>Какие тут есть подходы?
Здесь описывается алгоритм, который может помочь.
Регулируя в нем ширину коридора отклонения можно получить различную степень подробности
Хотя и предназначение у него несколько иное
Надо отображать большие массивы одномерных данных — траекторий.
Траектории надо отображать с бОльшей или мЕньшей степенью подробности (детализации).
Например в траектории 10 тыс точек, а надо нарисовать ломаную из 256-ти отрезков.
Какие тут есть подходы?
На ум приходят алгоритмы из темы масштабирования 2d-изображений.
А есть ли алгоритмы специфичные для траекторий?
Здравствуйте, _novice_, Вы писали:
__>Надо отображать большие массивы одномерных данных — траекторий. __>Траектории надо отображать с бОльшей или мЕньшей степенью подробности (детализации). __>Например в траектории 10 тыс точек, а надо нарисовать ломаную из 256-ти отрезков.
__>Какие тут есть подходы?
__>На ум приходят алгоритмы из темы масштабирования 2d-изображений. __>А есть ли алгоритмы специфичные для траекторий?
В некоторых случаях подходящим решением будет на больших масштабах (охватывающих большое число точек) отображать не поточечно, а диапазонами, подобно току как это делают для биржевых данных (см. "японские свечи").
Здравствуйте, _novice_, Вы писали:
__>Надо отображать большие массивы одномерных данных — траекторий. __>Траектории надо отображать с бОльшей или мЕньшей степенью подробности (детализации). __>Например в траектории 10 тыс точек, а надо нарисовать ломаную из 256-ти отрезков.
__>Какие тут есть подходы?
__>На ум приходят алгоритмы из темы масштабирования 2d-изображений. __>А есть ли алгоритмы специфичные для траекторий?
Я делал так.
1. Запоминаем экранные координаты последней отображенной точки.
2. Преобразуем в экранные, координаты следующей точки.
3. Если экранные координаты новой точки отличаются и той, что запомнили, рисуем линию между ними и переходим к п.1. Иначе повторяем с п.2.
Как вариант, можно сначала собирать все "видимые" точки в массив и выводить их с помощью polyline.