Гладкая случайная линия с петлями, используя Raphael / JS - PullRequest
0 голосов
/ 07 апреля 2011
$(document).ready(function(){
    var x1 = Math.random()*$(window).width(); var y1 = Math.random()*$(window).height();
    var x2 = 1; var y2 = 1;
    var paper = Raphael(document.body);

    setInterval(function() {
        randx = Math.random(); randy = Math.random();
        if (randx > 0.9) {
            if (x2 = 1) {
                if (randx > 0.99) x2 = -1;
            }
            else if (x2 = -1) {
                if (randx > 0.99) x2 = 1;
            }
        } else x2 = 0;
        if (randy > 0.9) {
            if (y2 = 1) {
                if (randy > 0.99) y2 = -1;
            }
            else if (y2 = -1) {
                if (randy > 0.99) y2 = 1;
            }
        } else y2 = 0;
        paper.path("M"+x1+" "+y1+"L"+(x1+x2)+" "+(y1+y2));
        x1 = x1+x2;
        y1 = y1+y2;
    }, 0);  
});

Это мой сценарий генерации "случайной строки". Я знаю, это должно выглядеть ужасно, я только учусь. Но я пытаюсь получить что-то похожее на это: http://i.stack.imgur.com/R7Kkv.png

Буду очень признателен за некоторые советы / предложения по алгоритму, который сделает линию более гладкой и с большей вероятностью превратится в разворот и т. Д.

Спасибо

1 Ответ

0 голосов
/ 07 апреля 2011

Ответ заключается в том, чтобы сгенерировать точки в рамке размером 40х40 или около того вокруг предыдущей точки и интерполировать между ними кубический сплайн.

...