#P0020. 斐波那契螺旋线(提交代码题)

斐波那契螺旋线(提交代码题)

1. 问题描述

斐波那契数列是指这样一个数列 1, 1, 2, 3, 5, 8, 13, 21 ... 这个数列从第 3 项开始 ,每一项都等于前两项之和

在这道题里,我们要用 Python 自带的 turtle library,把斐波那契数列画成曲线(斐波那契螺旋线),在大自然中,很多形状都是这个样子

参考老师给出的这张动图例子

在图中,从小到大每个正方形边长、还有圆弧的半径,依次是斐波那契数列的项 1, 1, 2, 3, 5, 8, 13, 21 ...

老师为大家准备了这道题一部分基础的代码,同学们可以复制之后,在 TODO 后面完成你的代码

import turtle

# 可以用来整体调整线条的长度
LENGTH = 10

# 产生 Fibonacci 数列
def fibonacci(n):
    x, y = 0, 1
    for i in range(n):
        if x > 0:
            yield x
        y, x = x, x + y

plt = turtle.Turtle()
plt.speed(50)

for i in fibonacci(10):
    # TODO: complete your code here
    # print(i)

2. 关于 Turtle

turtle 是一个控制画笔,按照我们的要求画线的库,作业中可能用到以下功能

  • plt.pencolor(color)color 是画笔的颜色,例如 "blue", "red", "yellow"
  • plt.forward(x) 向前画线 / plt.backward(x) 向后画线,其中 x 是线段的长度
  • plt.left(angle) 左转 / plt.right(angle) 右转,其中 angle 是旋转角度
  • plt.circle(radius, angle) 画圆弧,其中 radius 是半径,angle 是角度,有以下几种
    • 90 是四分之一圆
    • 180 是半圆
    • 360 是完整的圆

3. 作业提交

  • 在你的课件中完成代码
  • 点击页面右边的 "递交 / Submit" 按钮,粘贴代码后提交
  • 上传之后会提示错误,是因为老师没有设置自动打分,小朋友可以忽略