Вы можете рассчитать минимальное остовное дерево и удалить самые длинные ребра. Затем вы можете рассчитать K-средних. Удалите еще один длинный край и вычислите k-средних. Промойте и повторяйте, пока не получите N = 10. Я полагаю, что этот алгоритм назван однолинейным k-средних и кластер похож на вороной диаграммы:
«Алгоритм k-кластеризации в одной линии ... это точно алгоритм Крускала ... эквивалентный поиску MST и удалению k-1 самых дорогих ребер.»
Смотрите, например, здесь: https://stats.stackexchange.com/questions/1475/visualization-software-for-clustering
Затем для каждого кластера вы применяете это правило:
They highest y - 1 is the top of the rectangle.
The leftmost x - 1 is the left of the rectangle.
The lowest y + 1 is the bottom of the rectangle.
The rightmost x + 1 is the right of the rectangle.
Обратите внимание, что под самым высоким я имею в виду самое близкое к верху экрана значение, а не самое большое.