MIT 6.031 Software Construction Lab1-Part2-Personal-Art

利用Turtle Graphics制作一些比较有趣的图形。
Turtle Graphics的模型支持点的连续移动,主要通过调用turn()和forward()方法。
适合用来绘制连续函数的图象,可以利用平面解析几何知识制作图形。
比如利用极坐标绘制对数螺线,心形线等等。
这里介绍一种利用递归方法绘制一类有趣图形的方法。

先看代码:

    private static void polyspi(double angle, double inc, double side, int times, Turtle turtle)
    {
        if (times > 0)
        {
            turtle.color(PenColor.getColor(times));
            turtle.forward(side);
            turtle.turn(angle);
            polyspi(angle, inc, (side + inc), (times-1), turtle);
        }
    }

效果:

这张图的参数是:
double angle = 59.5;
double inc = 0.5;
double side = 3;
int times = 300;

简要说明一下参数的作用:
@parameter : angle 影响的是图形的外轮廓,angle = 180° - inside angle
@parameter : inc 影响图形的大小与线的密集程度
@parameter : side 影响初始的线长度,即中央的空白
@parameter : times 影响图形的大小

参考:https://www.codeproject.com/Articles/117957/Turtle-Graphics-and-L-systems-with-F-and-WPF

posted @ 2018-03-04 09:23  Haruna_K  阅读(574)  评论(0编辑  收藏  举报