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

1.3.3 绘制片段

下面来看看线段AB小于10像素时的情况,这是此递归算法的基线条件。小于这个阈值后将不再递归,而是将构成单个片段的4条线段返回,为此使用了模块turtle中的方法up()、down()和setpos(),这些方法在1.1.3小节“使用海龟绘图法绘图”中介绍过。

    else:
        # 绘制中间的角
        t.up()
      ❶ t.setpos(p1[0], p1[1])
        t.down()
        t.setpos(p2[0], p2[1])
        t.setpos(p3[0], p3[1])
        # 绘制两侧的边
        t.up()
      ❷ t.setpos(x1, y1)
        t.down()
        t.setpos(p1[0], p1[1])
        t.up()
      ❸ t.setpos(p3[0], p3[1])
        t.down()
        t.setpos(x2, y2)

首先绘制了由点P1P2P3构成的角❶,然后绘制了线段AP1❷和P3B❸。由于在函数drawKochSF()的开头完成了所有必要的计算,因此实际绘图工作很简单,将合适的坐标传递给方法setpos()即可。