如何为JS乌龟分形制作动画?

时间:2019-04-12 09:19:40

标签: javascript turtle-graphics

我需要使用js turtle library来绘制分形,因此,分形是动画的,直到完全像python turtle示例here

一样绘制为止

我已经在命令here中尝试过。文档中有一个名为animate的函数,但我无法使用它,它仅等待一段时间,然后绘制分形而没有任何动画。

我输入命令输入animate(demo, 1000)

有什么建议吗?

如果我不能在js turtle中使用动画,还有另一个快速简便的库可以完成分形的绘制吗?!

1 个答案:

答案 0 :(得分:1)

您没有正确使用animate()。您不能仅将其应用于完成的程序并期望其行为发生变化。相反,您需要将其合并到程序中。应该有一个函数在每次调用动画时绘制一部分动画。然后让它animate()一遍又一遍地调用。重写您的示例:

function square(side) {
    repeat(4, function () {
        forward(side);
        right(90);
    });
}

var s = 100

function draw() {
    square(s);
    right(36)

    s -= 10

    if (s < 0) {
        s = 100
        clear()
    }
}

function demo() {
    hideTurtle();
    colour(0, 0, 255, 1);
    animate(draw, 500);
}

通过demo()调用它,不要在其上调用animate()。它的基本动画单位是 square 。如果要查看正在绘制的正方形,则需要重新设计代码,以使基本动画单元位于正方形的一侧(即 line 。)