《教孩子学编程(Python语言版)》——2.3 海龟画圆

本节书摘来自异步社区《教孩子学编程(Python语言版)》一书中的第2章,第2.3节,作者[美]Bryson Payne,李军 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.3 海龟画圆

说到几何,海龟作图可以绘制很多有趣的形状,而不只是直线。我们将在2.4节中再次回到正方形,但现在,让我们来更多地了解一下Python Turtle库。

我们再来修改一行代码:t.forward(x)。我们在前面看到了这条命令或函数,它将海龟的钢笔向前移动x个像素并且绘制一条笔直的线段;然后,海龟转向并且再次绘制。如果我们修改这行代码来绘制更为复杂一点的图形,例如圆,那会怎么样呢?

好在,绘制一个固定大小(或半径)的圆的命令,和绘制一条直线的命令一样简单。我们将t.forward(x)修改为t.circle(x),如下面的代码所示。

CircleSpiral1.py

import turtle
t = turtle.Pen()
for x in range(100):
   t.circle(x) 
   t.left(91)

哦,将一条命令从t.forward修改为t.circle,会得到一个复杂得多的形状,如图2-3所示。t.circle(x)函数让程序在当前位置绘制了一个半径为x的圆。注意,这个绘制和简单的正方形螺旋线有一些相同点:它也有4组圆形的螺旋线,就像是正方形的螺旋线有4个边一样。这是因为我们使用t.left(91)命令,每次向左旋转都将超过90°一点点。如果我们学习过几何就知道,围绕一个点转一圈有360°,就像是一个正方形有4个90°的角(4×90 = 360)。海龟通过每次围绕图形旋转的比90°多一点点,从而绘制出这个螺旋线的形状。


《教孩子学编程(Python语言版)》——2.3 海龟画圆

我们将会看到的一个区别是,圆形螺旋线比正方形螺旋线要大一些,实际上,大约是前者两倍那么大。这是因为t.circle(x)使用x作为圆的半径,而这是从圆心到边缘的距离,大概是圆的宽度的一半。

半径为x意味着,圆的直径,也就是说总的宽度是x的两倍。换句话说,t.circle(x)绘制的圆,当x等于1的时候,总宽度为2个像素;当x为2的时候总宽度为4个像素;按照这种方式,直到x等于99的时候,其宽度为198个像素。这几乎是200个像素宽了,或者说是正方形边最大的时候的两倍,因此,圆螺旋线看上去是正方形螺旋线的两倍的大小,当然,也会加倍的酷!

上一篇:《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之84——BREW中的应用加载机制


下一篇:Unity射线检测3d,2D,正交透视。