• Как защитить аудио,видео,изображение?

    @Northsoft
    Препод, программист, линуксоид
    Злоумышленник может отключить JavaScript. Все преобразования сто́ит делать с помощью серверных программ (например, написанных на PHP). На аудио лучше вручную накладывать звуки, чтобы не ухудшить смысловое качество аудиоролика. На видео можно накладывать водяные знаки, используя, например, пакет ffmpeg. Примеры можно найти, задав вопрос «video watermark php».
    Ответ написан
    Комментировать
  • Как закрасить произвольную фигуру линиями?

    @Northsoft
    Препод, программист, линуксоид
    Алгоритм серьёзный, боюсь, бесплатно вам его никто не реализует. Я бы поступил как:
    1. Провёл бы контур, аналогичный границе, но внутри неё на таком расстоянии, которое достаточно мало́, чтобы проведённый контур сливался с границей;
    2. разбил бы только что проведённый контур на отдельные кольца (при наличии самопересечений);
    3. для каждого кольца провёл бы внутри ещё один контур;
    4. соединил бы проведённые внутренние контуры со внешними;
    5. для каждого из оставшихся колец повторял бы алгоритм.

    И ещё, алгоритм кратчайшего пути через все точки — это задача коммивояжёра, известная своей трудоёмкостью. Боюсь, оптимизировать тут что-либо будет достаточно тяжело, это больше задача для НИИ.
    Ответ написан
  • Почему срабатывает else?

    @Northsoft
    Препод, программист, линуксоид
    «else» всегда относится к одному ветвлению. Если вы написали «else» после последнего ветвления, то и вторая ветвь будет относиться к нему же.
    При оформлении взаимоисключающих вариантов (например, когда деталь не может одновременно быть и первосортной и бракованной) рекомендуется использовать следующую конструкцию:
    if (clause1) {
      action1;
    } else if (clause2) {
      action2;
    } else {
     action3;
    }
    Ответ написан
    Комментировать