Уроки, алгоритмы, программы, примеры

Вход на сайт

Материалы по разделам

Построения
на плоскости (2D)
Графика
в пространстве (3D)
Вычислительная
геометрия
Физическое
моделирование
Фрактальная
графика

Новые комментарии

У Вас число превысит максимальное число int. Можно использовать в Вашем случае uint, но лучше все переписать на double.
Добавление к программе строки glutReshapeFunc(changeSize); приводит к тому, что треугольник перестаёт совсем отрисовываться.
Выдаёт ошибку glut32.dll не найден! При том, что он лежит в System32! Всё решил) Нужно отправить не в System32, а в System.
Спасибо за статью. Я не Ваш студент. Но мне она помогла написать функцию для Канторова множества на Python для черепашки: import turtle def kanter(x, y, d):     if d > 1:         turtle...
Как реализовать в данном примере границы расчёта?

Счетчики и рейтинг

Рейтинг@Mail.ru Яндекс.Метрика
Скриншот к примеру
Среда программирования: 
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.zip125.2 кб