• Есть ли алгортм покрытия окружностями всей площади произвольной фигуры?

    @extempl
    Учитывая, что в вашем варианте решения синие и жёлтые круги будут составлять не что иное, как сетку - можно попробовать наложить на многоугольник сетку с шагом равным диаметру окружности, затем заполнить все целые квадраты (которые целиком лежат в пределах окружности), а затем нарисовать круги на пересечении линий сетки, которое лежит в зоне многоугольника и не было покрыто. После всего этого может остаться ещё непокрытая зона в виде узких полос, на территории которых нет ни центров ячеек сетки, ни точки пересечений линий. Их, видимо, прийдётся обойти по порядку - сначала покрыть целиком ячейки, часть которых лежит на таких линиях, затем, если остались свободные непокрытые места - на пересечениях вокруг этих самых заполненных ячеек.
    По сути, изначально, для пущей эффективности, нужно было наложить две сетки - вторую со смещением x+=50%, y+=50% от ширины ячейки. Тогда заполнять только ячейки не обращая внимания на пересечения (они будут центрами ячеек в другой плоскости).

    Я думаю, как-то так. Наверняка можно оптимизировать ещё, чтобы в конце (там где линии) не перебирать круги вокруг ячеек вслепую, а рисовать только там, где часть их точно покроет зону.

    Ещё, этот алгоритм удобнее и оптимальнее в плане работы с ним, но для покрытия наименьшим кол-вом станций, возможно нужно будет рисовать сетки так, чтоб одно из направлений линий составляющих её было параллельно самой длинной прямой стороне многоугольника. Но не факт, тут надо экспериментировать.
    Ответ написан
  • Сохранение векторного слоя Photohop в SVG?

    @extempl
    Если тип слоя smart object - просто кликаем дважды по иконке в списке слоёв и он открывается в AI (если установлен). Оттуда нативно сохраняется в SVG (Save as svg).
    Ответ написан