Показать сообщение отдельно
  #1 (permalink)  
Старый 30.04.2014, 09:13
Аватар для Atner
Новичок на форуме
Отправить личное сообщение для Atner Посмотреть профиль Найти все сообщения от Atner
 
Регистрация: 20.06.2008
Сообщений: 2

рисование в canvas дерева через рекурсивную функцию
На сайте 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 на форуме Сообщить модератору о нарушении

Последний раз редактировалось Atner, 30.04.2014 в 12:59.
Ответить с цитированием