Сегментация

В одномерном случае разбиение геометрии на симплексы сводится к построению отрезков между соседними точками. Такой процесс будем называть сегментацией. Входными данными являются точки на прямой, выходными — набор одномерных симплексов.

Алгоритм в этом случае очень простой.

  1. Берём все точки геометрии и сортируем их по координате xx.
  2. После сортировки соединяем каждую точку со следующей: если упорядоченные точки имеют координаты x0x_0 <x1< x_1 << \ldots <xn< x_n, то симплексы имеют вид sis_i =[xi,xi+1],  i= [x_i, \, x_{i+1}], \; i =0,1,,n= 0, 1, \ldots, n 1- 1.
  3. Каждому полученному отрезку назначаем новый номер. Эти номера относятся уже не к исходным точкам, а к симплексам.

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

Сортировка точек и построение отрезков-симплексов
Рис. 4.1. Сегментация: упорядоченные точки и отрезки-симплексы.

В одномерном случае вся геометрия уже задана расположением точек на прямой, поэтому достаточно их упорядочить. Если две точки имеют одинаковую координату, такой случай должен быть обработан до сегментации: сам алгоритм предполагает, что отсортированная последовательность точек задаёт корректную цепочку отрезков.