《python程序语言设计》2018版第5章第48题以0,0为圆心 绘制10个左右的同心圆

作者 : admin 本文共755个字,预计阅读时间需要2分钟 发布时间: 2024-06-10 共3人阅读

《python程序语言设计》2018版第5章第48题以0,0为圆心 绘制10个左右的同心圆插图

在0,0点处绘制10个圆。

其实这个题先要记住python不会0,0为原点进行绘画。
它是按半径来画,所以我们要先把turtle这个小画笔送到它应该去的起点。(我经常有这样的错觉,每次都是这样想办法把自己拉回来)
我们按半径为100为最外面的圆来理解
即x轴为0,y轴为-100
那么也就是
turtle.penup
turtle.goto(0,-100)
turtle.pendown
turtle.cirle(100)

这是画一个圆。那么现在我们要利用循环画。
好的我们是从里往外,还是从外往里呢??
我先从外往里画。
所以我就先设计了一个简单的变量
a= 100
它既是半径,也是我们循环用来的一个基础数据

那么我编写了下面这段代码

a = 100
turtle.dot(6, "blue")
turtle.penup()
for i in range(1,10):
    turtle.goto(0, -(a-(i*10)))
    turtle.pendown()
    turtle.circle(a-(i*10))
    turtle.penup()
turtle.done()

《python程序语言设计》2018版第5章第48题以0,0为圆心 绘制10个左右的同心圆插图(1)

主要我们看-(a-(i10))
因为水平有限,我们就假设所有的10个圆都以Y轴负数区域为绘画起点。
I
10这个10就是我设计的一个间距,利用i的不断迭代进行相成。
当然这就是从外往里画。

如果我们是从里往外呢??
我们可以试试

代码如下

a = 10
turtle.dot(6, "blue")
turtle.penup()
for i in range(1,10):
    turtle.goto(0, -(a+(i*10)))
    turtle.pendown()
    turtle.circle(a+(i*10))
    turtle.penup()
turtle.done()

《python程序语言设计》2018版第5章第48题以0,0为圆心 绘制10个左右的同心圆插图(2)

两个结果。从外往里画,最后turtle走到了里面,从内往外则在最外面结束

希望对大家有帮助

本站无任何商业行为
个人在线分享 » 《python程序语言设计》2018版第5章第48题以0,0为圆心 绘制10个左右的同心圆
E-->