В предыдущей статье рассказывалось о простейшей хаотической системе с довольно интересными результатами, а вот в этой статье, я покажу гораздо более интересную систему, на получение красивых результатов в которой потребуется львиное терпение: для того, чтобы получить не какую-то размазню из точек, требуется самостоятельный и довольно нудный подбор уже четырех коэффициентов.
Система функций, которую будем использовать в этом случае, выглядит следующим образом:
X' = sin(b * X) + c * sin(b * Y) Y' = sin(a * X) + d * sin(a * Y) где X, Y - точки до преобразования, X', Y' - точки после преобразования
Ничего сложного в коде программы нет, однако каждый раз перед ее запуском требуется вручную поправить исходный код, изменив коэффициенты:
link graphics,random procedure main() local W randomize() W := WOpen("size=500,500") a := -6.14 b := 2.15 c := -1.625 d := -8.9 x := -50 y := 100 every i := 1 to 50000 do { DrawPoint(200-50*x,200+50*y) x1 := x y1 := y x := xn(b,c,x,y) y := yn(a,d,x,y) } WDone() end procedure xn(b,c,x,y) return sin(b*x) + c * sin(b*y) end procedure yn(a,d,x,y) return sin(a*x) + d * sin(a*y) end
Поскольку, все это дело писалось еще в прошлом году, то коэффициентов, дающих интересные картинки у меня не осталось, зато остались вот такие скриншоты:
P.S : Если найдете интересные картинки с помощью этой программки, то дайте знать нам: напишите свои коэффициенты в комментариях 😉