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