Ну ясно дело, что писать заметки себе в xml или yaml неудобно. Но бывают задачи, когда без структурирования всё равно не обойтись. Тогда нужно выбирать меньшее (простейшее) из зол
Да, я так и понял. Идея там простая, но реализация оказалась сложнее. Итак:
Ползет линия, имеющая направление и скорость. С каждым шагом направление изменяется на «скорость поворота» (это первая производная). Скорость поворота тоже с каждым шаг меняется на «скорость скорости поворота» (вторая производная). Есть еще третья производная. Когда скорость поворота «ползущего уса плюща» становится слишком большой — он закручивается и прекращает ползти. И еще — с каждым шагом линия чуть сужается, пока не станет совсем тонкой.
Иногда из ползущего уса начинает ползти (примерно в этом же направлении) «ветвь». Свои стартовые параметры (толщину, цвет) она берет из родительской ветви. Частота появления таких отростков должна быть не очень большой, иначе вместо красивого витиеватого букета получится плотный веник. Таким образом, получается рекурсивное дерево. Максимальное количество уровней вложенности ограничено, иначе комп задумается на годы…
Все стартовые параметры (толщина, длина шага, скорости поворота, цвет, частота отростков и т. п.) задаются диапазонами значений, из которых генератор случайных чисел выбирает что ему понравится.
Программа написана также на C# (WPF и GDI+). Однако в этой программе картинки обычно считаются не за несколько секунд, а за несколько минут.
Кому интересно — дам поиграться. Но предупреждаю — писал для себя, «на коленке».
О, ну это вообще отдельная тема… Я его недели две программировал. Там рекурсивно из одних линий вырастают другие линии, и всё закручивается, всё утоньшается, вьется… Могу тоже прислать исходники или exe-шник, но там столько параметров, что я в них сам путаюсь :)
Алгоритм, о котором речь в этой статье, мне как раз и нравится своей простотой: немного закономерности + немного случайности — и уже красиво.
С точки зрения математики это, конечно, не фракталы, тут нет рекурсии. Но субъективно с первого взгляда глаз улавливает повторение идеи на двух уровнях, и всплывает образ фрактала.
Я пытался программировать фракталы, но как-то не очень удачно. Вот тут есть галерея фракталов, которые я сделал НЕ ПРИ ПОМОЩИ КОДА, а при помощи одного из приложений Adobe. Делал их чтобы напечатать и повесить на стены в качестве картин :). Несколько фракталов так до сих пор и висят в квартире в рамочках.
Жена купила ребенку такую линейку несколько месяцев назад. Действительно, некое подобие с этим алгоритмом получается, если рисовать разноцветными ручками
Я иногда тупые фильмы где много разговоров замедляю в два раза — герои начинают говорить как обкуренные тормоза. Скучные мелодрамы превращаются таким образом в уморительные комедии :)
То есть в некотором смысле тестами для тестов является сам тестируемый код.
Ползет линия, имеющая направление и скорость. С каждым шагом направление изменяется на «скорость поворота» (это первая производная). Скорость поворота тоже с каждым шаг меняется на «скорость скорости поворота» (вторая производная). Есть еще третья производная. Когда скорость поворота «ползущего уса плюща» становится слишком большой — он закручивается и прекращает ползти. И еще — с каждым шагом линия чуть сужается, пока не станет совсем тонкой.
Иногда из ползущего уса начинает ползти (примерно в этом же направлении) «ветвь». Свои стартовые параметры (толщину, цвет) она берет из родительской ветви. Частота появления таких отростков должна быть не очень большой, иначе вместо красивого витиеватого букета получится плотный веник. Таким образом, получается рекурсивное дерево. Максимальное количество уровней вложенности ограничено, иначе комп задумается на годы…
Все стартовые параметры (толщина, длина шага, скорости поворота, цвет, частота отростков и т. п.) задаются диапазонами значений, из которых генератор случайных чисел выбирает что ему понравится.
Программа написана также на C# (WPF и GDI+). Однако в этой программе картинки обычно считаются не за несколько секунд, а за несколько минут.
Кому интересно — дам поиграться. Но предупреждаю — писал для себя, «на коленке».
Алгоритм, о котором речь в этой статье, мне как раз и нравится своей простотой: немного закономерности + немного случайности — и уже красиво.
Я пытался программировать фракталы, но как-то не очень удачно. Вот тут есть галерея фракталов, которые я сделал НЕ ПРИ ПОМОЩИ КОДА, а при помощи одного из приложений Adobe. Делал их чтобы напечатать и повесить на стены в качестве картин :). Несколько фракталов так до сих пор и висят в квартире в рамочках.
Первые минуту-две напрягаешься, настраиваешь мозг на скорость — остальную часть фильма мозг уже нормально переваривает