使用Raphael / JS平滑随机线,带循环

时间:2011-04-07 18:39:30

标签: javascript drawing raphael

$(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 :(得分:0)

答案是在前一点周围的40x40左右的框中生成点,并使用三次样条插值在它们之间进行插值。