RecCircle ( 300, 250, 100, 3 ); // 3 уровня

getch();

closegraph();

}

Пифагорово дерево задается так: «ствол» дерева – вертикаль-ный отрезок длиной l. От него вверх симметрично отходят две ветки так, чтобы угол между ними был 90 градусов, их длина равна k*l, где k<1. Так повторяется для заданного количества уровней.

На рисунке показано дерево Пифагора при k=0.7, имеющее 5 уровнейЧтобы написать процедуру, придется вспомнить геометрию и тригонометрию. Проще всего получается, если написать формулы для произвольного угла наклона ветки α. Если (x,y) – координаты начала ветки и она наклонена по отношению к горизонту на угол α,

то формулы для определения координат конца ветки (x1,y1) принимают вид:

x1 = x + L * cos( α )

y1 = y - L * sin( α )

Знак минус при вычислении y1 появился из-за того, что ось y для экрана направлена вниз. Ветки следующего уровня,выходящие из вершины с координатами (x1,y1), имеют

углы наклона α + π /4 (правая ветка) и α - π /4 (левая ветка). Не забудем также, что для использования функций sin и cos надо подключить заголовочный файл math.h и передавать им значения углов в радианах.Параметрами процедуры являются координаты начала базовой ветки (x,y), ее длина L, угол наклона в радианах angle и количество уровней n, которые надо нарисовать.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: