昨天我们写了怎么利用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库的魅力可不至于此,你还可以用它来画商标:
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)