Python极客项目编程(第2版)
上QQ阅读APP看书,第一时间看更新

1.3.4 编写函数main()

函数main()创建并设置一个turtle对象,再调用drawKochSF()。

def main():
    print('Drawing the Koch Snowflake...')
 
    t = turtle.Turtle()
    t.hideturtle()
 
    # 绘制科赫雪花
    try:
      ❶ drawKochSF(-100, 0, 100, 0, t)
      ❷ drawKochSF(0, -173.2, -100, 0, t)
      ❸ drawKochSF(100, 0, 0, -173.2, t)
  ❹ except:
         print("Exception, exiting.")
         exit(0)
 
    # 等用户在屏幕上单击后退出
  ❺ turtle.Screen().exitonclick()

从图 1.4 可知,要绘制3个片段,确保最终输出为六角对称的雪花图形。为此,调用了drawKochSF() 3次:对于第1个片段,点A和点B的坐标分别为(−100, 0)和(100, 0)❶;对于第2个片段,坐标为(0, −173.2)和(−100, 0)❷;对于第3个片段,坐标为(100, 0)和(0, −173.2)❸。请注意,这些坐标与前面在程序test_turtle.py中绘制三角形时使用的坐标相同。请尝试确定这些坐标是如何计算出来的。(提示:

为捕获绘图期间可能发生的异常,将对函数drawKochSF()的调用放在一个Python try块中。例如,用户在绘图期间关闭了窗口,将引发异常,可在except块中捕获此异常❹,然后输出一条消息并退出程序。如果用户没有终止绘图过程,将执行代码turtle.Screen().exitonclick()❺,等待用户单击将窗口关闭。