Среда программирования:
Notepad++
Статья по теме:
Данная программа строит фрактал Gingerbread man. Он задается кусочно-линейным преобразованием:
xn + 1 = 1 - yn + |xn|
yn + 1 = xn
Главная функция запускает итеративную процедуру: вычисляет новые координаты по старым, выбирает цвет и ставит пиксель.
Код программы:
var canvas = document.getElementById("cnvs"); var ctx = canvas.getContext("2d"); function gingerbreadMan() // итеративная функция, рисует фрактал gingerbread man { var x = -0.1, y = 0; // начальная точка var n = 0, i = 0, cnt = 50000; // cnt - количество итераций while (i < cnt) { t = x; // запоминаем значение x x = 1 - y + Math.abs(x); // преобразуем координату x y = t; // теперь координата y равна старой координате x n++, i++; // отрисовка точек ctx.beginPath(); // выбор случайного цвета ctx.strokeStyle = '#' + (n % 10) + ((n % 10) * (n % 10)) % 10 + 'DC'; // отрисовка пикселя ctx.rect(150 + Math.ceil(x * 30), 150 + Math.ceil(y * 40), 1, 1); ctx.stroke(); ctx.closePath(); } } gingerbreadMan(); // вызов функции
Прикрепленный файл | Размер |
---|---|
gingerbread_man.zip | 125.2 кб |