Python实训_使用turtle库绘制同心圆/操场/笑脸(包含turtle库常用操作及代码实现)

个人主页我是弓长

系列专栏编程语言_Python

一个普通的学习者

目录

一、实验目的

二、turtle库常用操作

2.1画布设置

2.2画笔属性设置

2.3画笔移动函数

2.4画笔控制函数

三、实验步骤

3.1同心圆实验步骤

3.2操场实验步骤

3.3笑脸实验步骤

三、代码实现

2.1同心圆代码实现

2.2操场代码实现

2.3笑脸代码实现


一、实验目的

  1. 掌握图形绘制函数库turtle的基本原理
  2. 能够熟练使用turtle库常用操作

二、turtle库常用操作

2.1画布设置

画布是turtle库的绘图区域。

使用setup()函数来设置画布的大小和位置。

定义方式

setup(width. height. startx, starty)

setup()参数说明

  • width:画布宽度。值为整数则表示像素值;值为小数则表示画布宽度与屏幕宽度的比例。 
  • height:画布高度。值为整数则表示像素值;值为小数则表示画布高度与屏幕高度的比例。
  • startx:画布左侧与屏幕左侧的像素距离。不传值则画布在屏幕中央。
  • starty:画布右侧与屏幕右侧的像素距离。不传值则画布在屏幕中央。

例:创建一个宽度400,高度300,处于屏幕中央的画布

import turtle

turtle.setup(400, 300)

2.2画笔属性设置

画笔的属性包括画笔的颜色、宽度和速度等。

使用pencolor()函数设置画笔的颜色。

定义方式

  1. 传入颜色字符串

    pencolor(colorstring)
  2. 传入颜色对应的RGB值。需要先把RGB值范围改为[0,255]
    getscreen().colormode(255)
    pencolor((r, g, b))  # 参数是元组形式

例:将画笔设置为蓝色

import turtle

turtle.pencolor("blue")  # 方式1
turtle.getscreen().colormode(255)  # 方式2
turtle.pencolor((0, 0, 255))

使用pensize()函数设置画笔的宽度。

定义方式:width表示画笔的宽度。不传值则返回当前画笔的宽度。

pensize(width)

使用speed()函数设置画笔的速度。

定义方式:speed是画笔的速度。数字越大表示速度越快

speed(speed)

2.3画笔移动函数

函数说明
penup()抬起画笔,移动时不绘制
pendown()放下画笔,移动时绘制
forward(distance)向当前画笔方向移动distance像素长度
backward(distance)向当前画笔相反方向移动distance像素长度
left(degree)逆时针移动degree度
right(degree)顺时针移动degree度
goto(x,y)将画笔移动到坐标(x,y)处
setheading(to_angle)设置当前朝向为angle度
circle(radius.extent)绘制半径为radius像素,角度为extent度的弧形。radius为正数时圆心在画笔的左侧;radius为负数时圆心在画笔的右侧。不传入参数extent时画整个圆

例:绘制一个在y轴左侧的半径为50像素的半圆

import turtle

turtle.setup(600, 400)  # 设置宽600,长400的画布,位于屏幕中央
turtle.penup()  # 抬起画笔
turtle.goto(0, 50)  # 将画笔移动到(0,50)处
turtle.setheading(180)  # 将画笔方向调到正西
turtle.pendown()  # 放下画笔
turtle.circle(50, 180)  # 绘制半径为50像素,角度为180度的弧形

2.4画笔控制函数

函数说明
fillcolor(colorstring)填充图形,可传入颜色字符串,也可传入参数(r,g,b)
color(color1,color2)设置pencolor = color1,fillcolor = color2
begin_fill()准备开始填充图形
end_fill()填充完成
showturtle()显示画笔的turtle形状
hideturtle()隐藏画笔的turtle形状
exitonclick()绘制完成后不关闭画布

例:绘制一个圆形,将其填充为蓝色,绘制完成后不关闭画布

import turtle

turtle.setup(600, 400)  # 设置宽600,长400的画布,位于屏幕中央
turtle.begin_fill()  # 准备开始填充
turtle.color("blue", "blue")  # 画笔颜色和填充颜色都为蓝色
turtle.circle(50)  # 绘制半径为50像素的圆形
turtle.end_fill()  # 填充完成
turtle.hideturtle()  # 隐藏画笔形状
turtle.exitonclick()  # 绘制完成后不关闭画布

三、实验步骤

3.1同心圆实验步骤

  1. 导入turtle库
  2. 绘制外圆,移动画笔,用color1填充
  3. 拿起画笔,调整画笔位置,放下画笔
  4. 绘制内圆,移动画笔,用color2填充

3.2操场实验步骤

  1. 导入turtle库
  2. 绘制外圈,移动画笔。用color1填充
  3. 拿起画笔,调整画笔位置,放下画笔
  4. 绘制内圈,移动画笔,用color2填充

3.3笑脸实验步骤

  1. 导入turtle库
  2. 绘制圆形,移动画笔,用color1填充
  3. 拿起画笔,调整画笔位置,放下画笔
  4. 绘制其他弧形,移动画笔

三、代码实现

2.1同心圆代码实现

具体代码

# 导入tutle库
import turtle as t

t.setup(1000, 800)  # 设置宽1000,长800的画布,位于屏幕中央
t.pensize(2)  # 设置画笔宽度为2
# 外圆
t.color("gold", "gold")  # 画笔颜色和填充颜色都为金色
t.begin_fill()  # 准备开始填充图形
t.circle(160, 360)  # 绘制半径为160像素,角度为360度的弧形
t.end_fill()  # 填充完成
# 调整画笔 
t.penup()  # 抬起画笔
t.goto(0, 60)  # 将画笔移动到(0,60)处
t.pendown()  # 放下画笔
# 内圆
t.color("red", "red")  
t.begin_fill() 
t.circle(100, 360)  
t.end_fill() 
t.hideturtle()  # 隐藏画笔形状
t.exitonclick()  # 绘制完成后不关闭画布

运行结果: 

2.2操场代码实现

具体代码

import turtle as t

t.setup(1000, 800)  # 设置宽1000,长800的画布,位于屏幕中央
t.pensize(2)  # 设置画笔宽度为2
t.speed(1.5)  # 设置画笔速度为1.5
# 外圈
t.color("red", "red")  # 画笔颜色和填充颜色都为红色
t.begin_fill()  # 准备开始填充图形
t.goto(300, 0)  # 将画笔移动到(300,0)处
t.circle(100, 180)  # 绘制半径为100像素,角度为180度的弧形
t.goto(0, 200) 
t.circle(100, 180) 
t.end_fill()  # 填充完成
# 调整画笔
t.penup()  # 抬起画笔
t.goto(0, 50)  
t.pendown()  # 放下画笔
# 内圈
t.color("green", "green")  
t.begin_fill()  
t.goto(300, 50) 
t.left(90)  # 画笔方向逆时针移动90度
t.goto(300, 150)  
t.left(90)  
t.goto(0, 150)  
t.left(90) 
t.goto(0, 50)  
t.end_fill() 

t.hideturtle()  # 隐藏画笔形状
t.exitonclick()  # 绘制完成后不关闭画布

运行结果

2.3笑脸代码实现

具体代码

import turtle as t
t.setup(1000, 800)  # 设置宽1000,长800的画布,位于屏幕中央
t.pensize(2)  # 设置画笔宽度为2
# 圆形
t.color("gold", "gold")  # 画笔颜色和填充颜色都为金色
t.begin_fill()  # 准备开始填充图形
t.circle(160, 360)  # 绘制半径为160像素,角度为360度的弧形
t.end_fill()  # 填充完成
# 调整画笔
t.penup()  # 抬起画笔
t.goto(-30, 200)  # 将画笔移动到(-30,200)处
t.left(90)  # 画笔方向逆时针移动90度
t.pendown()  # 放下画笔
t.pencolor("black")  # 设置画笔颜色为黑色
t.circle(25,180)  

t.penup()  
t.goto(30, 200) 
t.right(180)  # 画笔方向顺时针移动180度
t.pendown()  
t.pencolor("black")
t.circle(-25,180)

t.penup()
t.goto(-25, 100)
t.pendown()
t.pencolor("black")
t.circle(25,180)

t.hideturtle()  # 隐藏画笔形状
t.exitonclick()  # 绘制完成后不关闭画布

运行结果

  • 33
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值