2020-04
7
阴魂不散的小海龟
LOGO语言小海龟,你为啥阴魂不散啊啊啊啊啊啊啊啊啊啊!!!!!对从前小学3年级的我来说是个噩梦,现在依然是个噩梦!Think Python 2的第四章正是用这个turtle讲故事,想死的心都有了。没有一定英语基础,没有足够强悍的数学基础,怎么可能玩得转小海龟,而且还要空间思维能力。小时候我对这个东西瑟瑟发抖实在太正常了…… 25年后再遇到,我继续纠结得死去活来……
第四章最后的习题1要求画一个堆栈图,不知道他们到底要画些什么,要画到什么程度,mindmanager了一个,画完以后的确对函数的嵌套有点开窍。
习题2要画3朵花,画得我死去活来…… 但总算完全不看答案能画出来,看完答案,得到那些偷偷摸摸设定的参数后能画得跟要求一模一样。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | import turtle, math def arc(t, r, angle): n = 20 # int(2*math.pi*r/4)+3 公式画图太细致太慢,直接赋值加速 step_length = int(2*math.pi*r)*angle/360/n step_angle = angle/n t.lt(step_angle/2) # 据说折腾一下角度能消除像素误差? polygon(t, step_length, n, step_angle) t.rt(step_angle/2) def polygon(t, length, n, angle): for i in range(n): t.fd(length) t.lt(angle) def flower(t, p, r, a): # t for turtle, p for petal, r for radius, a for angle for i in range(p): for i in range(2): # 重复两次画花瓣,两次转向后和初始方向一致,非常重要!!!!! arc(t, r, a) t.lt(180-a) t.lt(360/p) def move(t, length): # 一个画板画3朵花必须用暗中位移 t.pu() t.fd(length) t.pd() bob = turtle.Turtle() move(bob, -100) flower(bob, 7, 60, 60) # 偷偷设定半径和角度,万恶的例子,叫人怎么猜!于是我也直接搬! move(bob, 100) flower(bob, 10, 40, 80) move(bob, 100) flower(bob, 20, 140, 20) turtle.mainloop() |
还没有评论