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

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

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

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

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