?

Log in

Dragon curve - Олег Етеревский [entries|archive|friends|userinfo]
Oleg Eterevsky

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Dragon curve [18 April 2015|21:02]
Oleg Eterevsky


Давно собирался и наконец собрался сделать что-нибудь такое: процедурно-генерированное видео с какой-нибудь красивой геометрией. Если понравится, сделаю ещё.
LinkReply

Comments:
[User Picture]From: hronopik
2015-04-19 06:56 pm (UTC)

улучшить?

Дискретные сдвиги в плоскости не очень (идеально было б, конечно, только скалировать, но для конкретной кривой может быть придется ее слишком сильно уменьшать. В крайнейм случае - просто плавное движение).
А так выглядит славно! Изюму бы ей еще какого-нибудь... Что если как-нибудь интересно цвет менять, чтобы сначала было пестро, а потом сливалось при достаточном удалении?
(Reply) (Thread)
[User Picture]From: eterevsky
2015-04-20 12:11 am (UTC)
> Дискретные сдвиги в плоскости не очень

Да, у меня сначала была та же проблема со скейлинго, и я её решил, апроксимировав его экспоненциальной функцией. Со сдвигом я попытался сделать то же самое (только приближал, естественно, функцией из другого семейства), но сходу у меня хорошо не получилось. Можно ещё сглаживать локально (и возможно я так и сделаю), но до этого у меня руки не дошли.

Не хочется вручную подбирать скейлинг и сдвиг. Хочется чтобы раз -- и они сами автоматически подобрались.

> А так выглядит славно! Изюму бы ей еще какого-нибудь... Что если как-нибудь интересно цвет менять, чтобы сначала было пестро, а потом сливалось при достаточном удалении?

Я попробую сделать видео с разбиением плоскости на такие фиговины. Будет цветное.
(Reply) (Parent) (Thread)
[User Picture]From: hronopik
2015-04-20 06:11 am (UTC)
а как ты расчитываешь сдвиг? по позиции курсора или взвешиваешь с еще чем-нибуть типа центра масс? Я думаю, что хорошая функция скорости должна быть просто диффенцируема. Может быть просчитать скорости на несколько шагов вперед и зафиттить туда многочлен (пересчитывая каждый раз в скользящем окошке, так что лучше может быть сплайны)
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2015-04-20 04:31 pm (UTC)
На первом шаге я подбираю скейлинг и сдвиг так чтобы вся кривая точно попадала в экран минус десятипроцентные поля. (+ минимальное значение скейлинга, чтобы при рисовании первого сегмента окно стояло на месте) Потом я приближаю коэффицент скейлига глобальной функцией, а сдвиг вычисляю чтобы центрировать кривую относительно окна.

Я потом выложу код на Гитхаб и может напишу статью на Хабре -- мне кажется, там есть несколько интересных моментов.
(Reply) (Parent) (Thread)