利用python画图(科赫曲线等)(第二弹)

昨天我们写了怎么利用python画出弧线或是圆形,今天我们就在昨天的基础上画出各种花来。

首先我们尝试在弧线的基础上加一道转角度的递归 :

import turtle
import math

bob = turtle.Turtle()                                 
#创造一个turtle object名为bob

print(bob)                                               
#绘制这个object

def arc(t,r,angle):
    arc_length = 2 *math.pi * r *angle /360
    # 求出弧长
    n = 50                                                    
    # 要绘画直线的的次数 
    # n的数值越大越好看,但运行时间会增加 (也可直接用弧长)
    step_length = arc_length/n                    
    # 每一次画线的长度
    step_angle = angle/n                            
    # 每一次画线所变化的角度
    for i in range(n):
        t.fd(step_length)                                
        # 向前画直线
        t.lt(step_angle)                                   
        # 转角度 
    t.lt(120)                                                  
    # 画完一道弧形后转120度
    arc(bob,200,120)                                    
    # 递归语句
turtle.mainloop()                                        
# 保留图形
arc(bob,200,60)                                         
# 调用函数实现实时绘制

这就是通过递归实现的三叶草。
实际上我们只要改一个小参数,就能变成这样一朵很漂亮的花朵。大家猜到是哪一步了吗?

其实就是t.lt(120)变成 t.lt(90),角度一变它就自动画下去了哦。
再小小地变动两个参数,它就带把了。嘿嘿。

如果你注意观察,你会发现花朵的中间都是圆,请问这是哪段代码造成的呢?

python的turtle的魅力可不至于此,你还可以用它来画商标:

还有美丽的雪花!(科赫曲线,明天我们就具体实现这个吧)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注