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

Вход на сайт

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

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

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

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

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

Рейтинг@Mail.ru Яндекс.Метрика
Скриншот к примеру
Среда программирования: 
JavaScript
Статья по теме: 
Код программы: 

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Треугольник Серпинского</title>
</head>
<body>
	<canvas id="canvas" width="500" height="500"></canvas>
	<script>
		var canvas = document.getElementById("canvas");
		var ctx = canvas.getContext("2d");
		var p0 = {  //координаты вершин начального треугольника
			x: 0,
			y: 500
		},
		p1 = {
			x: 250,
			y: 0
		},
		p2 = {
			x: 500,
			y: 500
		};
 
		function drawTriangle (p0, p1, p2) { //функция для отрисовки треугольника
			ctx.beginPath();
			ctx.moveTo(p0.x, p0.y);
			ctx.lineTo(p1.x, p1.y);
			ctx.lineTo(p2.x, p2.y);
			ctx.lineTo(p0.x, p0.y);
			ctx.stroke();
		}
		function drawFract (p0, p1, p2, limit){ //лимит - до какого момента будет выполняться рекурсия
			if( limit > 0 ){
				var pA = { // середины каждой пары вершин
					x: (p0.x + p1.x) / 2,
					y: (p0.y + p1.y) / 2 
				},
				pB = {
					x: (p1.x + p2.x) / 2,
					y: (p1.y + p2.y) / 2
				},
				pC = {
					x: (p2.x + p0.x) / 2,
					y: (p2.y + p2.y) / 2
				};
				drawFract(p0, pA, pC, limit-1); //рекурсивный вызов функции 
				drawFract(pA, p1, pB, limit-1);
				drawFract(pC, pB, p2, limit-1);
			} else {
				drawTriangle(p0,p1,p2);
			}
		}
		drawFract(p0, p1, p2, 6)
	</script>	
	</body>
</html>

Прикрепленный файлРазмер
shevchuk_fract.rar854 байта