Показать сообщение отдельно
  #1 (permalink)  
Старый 19.03.2015, 01:50
Новичок на форуме
Отправить личное сообщение для rusel_z Посмотреть профиль Найти все сообщения от rusel_z
 
Регистрация: 19.03.2015
Сообщений: 4

Передача параметров в функцию
Имеется код, который по идее должен вырисовывать кривую Леви на канву на html-странице.
var canvas, ctx;

function initialize() {
    canvas = document.getElementById('canvas');
    ctx = canvas.getContext("2d");
}

window.onload = initialize;
var i;

function drawLevy(xa,ya,xb,yb,i) {
    if(i == 0) {
        ctx.beginPath();
        ctx.moveTo(xa,ya);
        ctx.lineTo(xb,yb);
        ctx.closePath();
        ctx.stroke();
    }
    else {
        xc = (xa + xb)/2 + (yb - ya)/2;
        yc = (ya + yb)/2 - (xb - xa)/2;
        drawLevy(xa,ya,xc,yc,i-1);
        drawLevy(xc,yc,xb,yb,i-1);
    }
}


Для 0- и 1-итерации все работает отлично, в первом случае отрисовывается прямая, во втором отрезок "надламывается" и отрисовываются новые два. Однако, если итераций больше 1, то очередной рекурсивный вызов функции берет неверные начальные координаты отрезка и строит ложный отрезок.

Возможно я неправильно передаю параметры в функцию, при вызове изнутри? Подскажите, пожалуйста.
Изображения:
Тип файла: png Безымянный.png (2.7 Кб, 8 просмотров)
Ответить с цитированием