На сайте
learn.code.org встретился простой пример рисования дерева через рекурсивную функцию.
Там и код прилагается
Захотел попробовать повторить нарисовать в javascript через canvas. Да вот как-то рекурсивная функция не работает - пример
jsfiddle. Прошу подсобить советами.
drawTree(context, 9, 2);
function drawTree(context,depth,branches) {
var step=5;
if (depth>0) {
//выбрать цвет
context.strokeStyle = 'rgb(' + Math.round(Math.random()*255) + ',' + Math.round(Math.random()*255) + ',' + Math.round(Math.random()*255) +')';
//рисуем
drawTo2(context,step*depth,angle);
angle = angle + 40;
for (a=0; a<=branches; a++) {
angle = angle - (180/branches);
drawTree(context,depth-1, branches);
};
angle = angle+50;
drawTo2(context,step*depth,angle);
} else {
//alert ('no depth deifined');
};
};
function drawTo2(context, length, angle) {
//angle = angle + 90;
x1 = x + (Math.sin(angle*Math.PI/180)*length);
y1 = y + (Math.cos(angle*Math.PI/180) *length);
context.moveTo(x,y);
context.lineTo(x1,y1);
x = x1;
y = y1;
}
atner на форуме Сообщить модератору о нарушении