接昨天笔记,因为之前已经学过一部分,但是没有在吾爱分享,现在开始了,希望自己能坚持下来!
正题:
绘制同心圆:
按照思路先一步一步来吧
1、绘制同心圆需引入turtle模块 import turtle
2、先绘制一个圆,半径先暂定50 turtle.circle(50)
3、因为需要画同心圆,所以需要圆心坐标一致,第一个圆圆心为(0,50),我们可以将指针移动至(0,-50),画一个半径为100的圆(或者y轴移动至-20,半径为70,保证圆心在(0,50)就可以了) turtle.goto(0,-50) turtle.circle(100)
4、暂时两个同心圆就完成了,但是中间会有移动线条,所以可以利用pendown()、penup()把线条取消
5、可以通过移动画笔在画一个同心圆,将坐标移至(0-100),半径150画圆
这就是以上代码了
[Python] 纯文本查看 复制代码 #绘制同心圆
import turtle
t = turtle.Pen() #获取画笔
t.circle(50)
t.penup()
t.goto(0,-50)
t.pendown()
t.circle(100)
t.penup()
t.goto(0,-100)
t.pendown()
t.circle(150)
turtle.done() #操作完成后,窗口不会关闭
通过画以上3个同心圆,我们发现或同心圆是有规律可循的,就上面举例来说是指针每次向下移动50,半径每次递增50,那我们就可以利用循环画圆了;
6、首先先写一个循环,然后将我们发现的规律写到循环里面
[Python] 纯文本查看 复制代码 for i in range(5):#0、1、2、3、4
t.penup()
t.goto(0, -i*50-50) #-50、-100、-150、-200、-250
t.pendown()
t.circle(i*50+100)
这样就是一个简单的循环了
然后还可以将每一个同心圆变成不同的颜色
[Python] 纯文本查看 复制代码 my_colors =('red','yellow','green','black')
t.circle(50)
for i in range(5):#0、1、2、3、4
t.penup()
t.goto(0, -i*50-50) #-50、-100、-150、-200、-250
t.pendown()
t.color(my_colors[i%len(my_colors)])#因为变量和my_colors变量长度不一致,所以需要用取余数方法访问元组中的字符串
t.circle(i*50+100)
整体的同心圆代码如下:
[Python] 纯文本查看 复制代码 #绘制同心圆
import turtle
t = turtle.Pen() #获取画笔
t.width(4)
t.speed(0)
my_colors =('red','yellow','green','black')
t.circle(50)
for i in range(5):#0、1、2、3、4
t.penup()
t.goto(0, -i*50-50) #-50、-100、-150、-200、-250
t.pendown()
t.color(my_colors[i%len(my_colors)])#因为变量和my_colors变量长度不一致,所以需要用取余数方法访问元组中的字符串
t.circle(i*50+100)
turtle.done() #操作完成后,窗口不会关闭
绘制棋盘
同理,首先先分析一下,棋盘是有横竖线组成,所以也可以用turtle模块画出,我们可以先画一个10*10的小棋盘
先画横线,将指针移至(200,0),画出第一道横线,然后将指针移动至(0,-20),再移动至(200,-20),画出第二道横线
通过以上可以看出,我们同样可以用循环画出一个棋盘,每次指针下移20,然后画横线
开始写循环
[Python] 纯文本查看 复制代码 import turtle
t = turtle.Pen()
t.goto(200,0)
for i in range(10):
t.penup()
t.goto(0,-20*i-20)
t.pendown()
t.goto(200,-20*i-20)
同理竖线也可以用循环写,代码就不放了
整体棋盘代码如下:[Python] 纯文本查看 复制代码 #绘制棋盘import turtle
t = turtle.Pen()
t.goto(200,0)
for i in range(10):
t.penup()
t.goto(0,-20*i-20)
t.pendown()
t.goto(200,-20*i-20)
t.penup()
t.goto(0,0)
t.right(90)
t.pendown()
t.goto(0,-200)
for i in range(10):
t.penup()
t.goto(20+i*20,0)
t.pendown()
t.goto(20+i*20,-200)
turtle.done()
终于写完了,太累了,而且感觉写的还是抓不住重点。。。。。另外我是小白一个,有什么错误还请大家批评指正,谢谢 |