Как нарисовать обрамляющую линию вокруг располагающихся рядом фигур?
Вот тут всё хорошо описано https://habrahabr.ru/post/144921/
Множество вершин многоугольников одного цвета составить не проблематично.
UPD. Первое пришедшее в голову решение:
Берем множество всех граней этих шестиугольников. Далее проходимся по нему и удаляем все, которые лежат между шестиугольников одного цвета. В итоге имеем множество граней, необходимых для постройки необходимой фигуры.
Можно даже абстрагироваться от шестиугольников и сделать это для любых фигур.
Это диаграмма Вороного, если вы смогли ее реализовать на каком нибудь языке, то для вас не должно составлять труда ее раскрасить. На JS такое умеет d3js , вот код модуля.