1.同心圆
circle函数
import turtle
turtle.pensize(2)
turtle.circle(10)
turtle.circle(40)
turtle.circle(80)
2.套娃正方形
import turtle as t
def square(sizes):
for side in [1,2,3,4]:
t.pensize(5)
t.fd(sizes)
t.right(90)
t.left(90)
def penn(sizes):
t.penup()
t.left(90)
t.fd(sizes)
t.right(90)
t.fd(sizes)
t.right(90)
t.pendown()
def main():
for sizes in [10,30,90,270]:
square(sizes)
penn(sizes)
main()
em自创的有待完善
对于边长的那个函数有点尴尬)
3.蟒蛇
import turtle
turtle.setup(650,350,200,200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
turtle.circle(40,80)
turtle.circle(-40,80)
turtle.circle(40,80/2)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40*2/3)
turtle.done()
4.连体五角星(斐波那契数列没想到)
首先,我理解的斐波那契
def f(n):
if n==1 or n==2:
return 1
else :
return f(n-1)+f(n-2)
我的五角星
import turtle as t
def F(n):
if n <=2:
return 1
else:
return F(n-1)+F(n-2)
def star(sizes,pcolor,fcolor,sangle=0):
t.color(pcolor,fcolor)
t.left(sangle)
t.begin_fill()
for i in range(5):
t.pensize(1)
t.fd(sizes)
t.left(144)
t.speed("fastest")
t.end_fill()
colors = ['blue','skyblue','yellow','pink','red']
star(F(n=8),\
colors[0],\
colors[0],72)
star(F(n=9),\
colors[1],\
colors[1],72)
star(F(n=10),\
colors[2],\
colors[2],72)
star(F(n=11),\
colors[3],\
colors[3],72)
star(F(n=12),\
colors[4],\
colors[4],72)
t.done()
注意
1.绘制五角星时,若t.left(144),则角向下
若t.right(144),则角向上
2.定义函数注意变量的使用
3.有一点问题有待改正
以下几个用于比较填色的版本
类型一:黑色边框无填充
import turtle as t
t.setup(width=0.5,height=0.8)
t.speed(50)
t.pensize(6)
def star(边长):
for i in range(5):
t.write(i)
t.fd(边长)
t.left(144)
def main():
colors=["blue","cyan","yellow","pink","red"]
边长 = 200
for i in range(5):
star(边长)
t.left(72)
main()
类型二:彩色边框黑色填充
import turtle as t
t.setup(width=0.5,height=0.8)
t.pensize(6)
def star(sizes):
for i in range(5):
t.write(i)
t.fd(sizes)
t.left(144)
def main():
sizes=200
t.begin_fill()
for i in range(5):
colors=["blue","cyan","yellow","pink","red"]
t.pencolor(colors[i])
star(sizes)
t.left(72)
t.end_fill()
main()
类型三:彩色边框红色填充
import turtle as t
t.setup(width=0.5,height=0.8)
t.speed(50)
t.pensize(6)
def star(边长,颜色="black"):
#t.color(颜色,颜色)
#t.begin_fill()
for i in range(5):
t.write(i)
t.fd(边长)
t.left(144)
#t.end_fill()
def main():
colors=["blue","cyan","yellow","pink","red"]
边长 = 200
t.begin_fill()
for i in range(5):
t.color(colors[i],colors[i])
star(边长)
t.left(72)
t.end_fill()
main()
类型二:等大的正确填充
import turtle as t
t.setup(width=0.5,height=0.8)
t.pensize(6)
colors=["blue","cyan","yellow","pink","red"]
def star(边长,颜色="black"):
#t.color(colors[i],colors[i])
t.begin_fill()
for i in range(5):
t.write(i)
t.fd(边长)
t.left(144)
t.end_fill()
def main():
边长 = 200
#t.begin_fill()
for i in range(5):
star(边长)
t.color(colors[i],colors[i])
t.left(72)
#t.end_fill()
main()