【作业解答】
编一个画菱形函数:
def lingxing(l, degree_a, degree_b):
for _ in range(2):
t.forward(l)
t.right(degree_a)
t.forward(l)
t.right(degree_b)
lingxing(30, 60, 120)
即可!
---------------------------------------------------------进入正文-------------------------------------------------------------首先看第二个等距分布。
这……从圆心起每个转30度就好了嘛!
再看第一个对准圆心。
这……从起点起,30度——120度——60度——12度——30度这么转。
最后把二者融合。(发现作业解答里的lingxing(l, degree_a, degree_b)函数用不了)
首先走到距圆周30处,做第一个,再回到圆心,再做第二个,这样重复12次。
代码:
import turtle as t
t.setup(800, 600)
t.hideturtle()
t.speed(-1)
t.penup()
t.goto(0, -100)
t.pendown()
t.pencolor("red")
t.circle(120)
t.setheading(90)
t.penup()
t.forward(120)
t.pendown()
t.penup()
t.setheading(90)
t.forward(150)
t.pendown()
def triangle(a, b, color, degree_a, degree_b):
t.pencolor(color)
t.right(degree_a)
t.forward(a)
t.left(180 - degree_b)
t.forward(b)
triangle(30, 30, "black", 30, 120)
triangle(30, 30, "black", 240, 120)
t.penup()
t.right(30)
t.forward(150)
t.right(150)
t.pendown()
def main():
t.penup()
t.forward(150)
t.pendown()
triangle(30, 30, "black", 30, 120)
triangle(30, 30, "black", 240, 120)
t.penup()
t.right(30)
t.forward(150)
t.right(150)
t.pendown()
for _ in range(0, 11):
main()
一做,符合!
第二种思路:
前两步与第一种相同,到对面,做第二个,回来,做6次。
代码:
import turtle as t
t.setup(800, 600)
t.hideturtle()
t.speed(-1)
t.penup()
t.goto(0, -100)
t.pendown()
t.pencolor("red")
t.circle(120)
t.setheading(90)
t.penup()
t.forward(120)
t.pendown()
t.penup()
t.setheading(90)
t.forward(120)
t.forward(30)
t.pendown()
def triangle(a, b, color, degree_a, degree_b):
t.pencolor(color)
t.right(degree_a)
t.forward(a)
t.left(180 - degree_b)
t.forward(b)
triangle(30, 30, "black", 30, 120)
triangle(30, 30, "black", 240, 120)
t.penup()
t.right(30)
t.forward(300)
t.pendown()
triangle(30, 30, "black", 30, 120)
triangle(30, 30, "black", 240, 120)
t.right(30)
t.penup()
t.forward(150)
t.pendown()
# end of action1
def main():
t.right(30)
t.penup()
t.forward(150)
t.pendown()
triangle(30, 30, "black", 30, 120)
triangle(30, 30, "black", 240, 120)
t.penup()
t.right(30)
t.forward(300)
t.pendown()
triangle(30, 30, "black", 30, 120)
triangle(30, 30, "black", 240, 120)
t.right(30)
t.penup()
t.forward(150)
t.pendown()
for _ in range(5):
main()
【作业】
本期没有!
下2期会对比turtle与其他的。具体是什么,咱们下期再见!