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