112. turtle绘制爱心代码解析

文摘   教育   2024-04-30 19:58   云南  


【目录】


  • 1. 创建画布和海龟对象

  • 2. 设置画笔颜色和填充颜色

  • 3. 绘制爱心形状

    • 3.1 pen.up()-抬起画笔

    • 3.2 pen.down()-放下画笔开始绘制图形

    • 3.3 pen.goto(x, y)-画笔移动到指定坐标位置

    • 3.4 pen.begin_fill()-开始填充图形

    • 3.5 pen.end_fill()-结束填充图形

    • 3.6 pen.left(45)-向左转45度

    • 3.7 pen.forward(150)-向前移动150个单位长度

    • 3.8 pen.circle(75, 180) -以半径为75,绘制180度的圆弧

    • 3.9 pen.right(90) -向右转90

  • 4. 完整代码


【正文】

1. 创建画布和海龟对象

# 导入turtle库,用于绘图操作
import turtle  

# 创建一个海龟对象,用于绘图
# 对象名= 库名.类名( )
# 对象名:pen
# 库名:turtle
# 类名:Turtle
pen = turtle.Turtle()  

# 创建一个画布对象
# 对象名= 库名.类名( )
# 对象名:canvas
# 库名:turtle
# 类名:Screen
canvas = turtle.Screen()  

# 设置窗口标题为"粉色爱心"
# 对象名.方法名(参数)
# 对象名:canvas
# 方法名:title
# 参数:"粉色爱心",表示窗口标题为粉丝爱心
canvas.title("粉色爱心")

# 设置画布的颜色
# 对象名.方法名(参数)
# 对象名:canvas
# 方法名:bgcolor
# 参数:"white",表示背景颜色为白色
canvas.bgcolor("white")  # 设置画布的背景颜色为白色

# 保持窗口打开状态
turtle.done()

2. 设置画笔颜色和填充颜色

pen.color("red""pink")  # 设置画笔的颜色为红色,填充颜色为粉红色
pen.pensize(3)  # 设置画笔的宽度为3像素
pen.speed(2)  # 设置绘图速度为2(中等速度)

3. 绘制爱心形状

3.1 pen.up()-抬起画笔

pen.up()用于抬起画笔,从而停止绘制图形。

当海龟(turtle)移动时,如果画笔是抬起的状态,它就不会留下任何轨迹。

3.2 pen.down()-放下画笔开始绘制图形

pen.down()放下画笔来精确地绘制图形。

3.3 pen.goto(x, y)-画笔移动到指定坐标位置

pen.goto(x, y)

pen.goto(x, y)用于将画笔移动到指定的坐标位置。

【坐标值】

坐标系统是以画布(canvas)的中心为原点(0, 0)来定义的。

水平方向是x轴,垂直方向是y轴。

x轴、y轴坐标值可以是正数或负数。

正值表示向右向下移动。

负值表示向左向上移动。

【代码示例】

import turtle
# 创建海龟对象
pen = turtle.Turtle()
pen.speed(1)  # 设置绘图速度为1

# 抬起画笔,移动时不绘制图形
pen.up()
pen.goto(100100)  # 移动到指定位置,但不会绘制线条

# 放下画笔,移动时绘制图形
pen.down()
pen.goto(100200)  # 从当前位置绘制线条到指定位置

# 再次抬起画笔,停止绘制
pen.up()

# 结束绘图,保持窗口打开
turtle.done()

3.4 pen.begin_fill()-开始填充图形

3.5 pen.end_fill()-结束填充图形

3.6 pen.left(45)-向左转45度

import turtle

# 创建海龟对象
pen = turtle.Turtle()

# 将海龟的朝向向左旋转45度
pen.left(45)

# 结束绘图,保持窗口打开
turtle.done()

运行上面的代码,观察箭头的方向。

3.7 pen.forward(150)-向前移动150个单位长度

import turtle

# 创建海龟对象
pen = turtle.Turtle()

# 将海龟向前移动150个单位长度
pen.forward(150)

# 结束绘图,保持窗口打开
turtle.done()

pen.forward()方法只控制海龟的移动,而不会绘制线条。

如果需要在移动过程中绘制线条,需要先调用pen.down()方法放下画笔,然后再使用pen.forward()方法进行移动。

3.8 pen.circle(75, 180) -以半径为75,绘制180度的圆弧

import turtle

# 创建海龟对象
pen = turtle.Turtle()

# 绘制一个半径为75个单位长度、角度为180度的半圆弧
pen.circle(75180)

# 结束绘图,保持窗口打开
turtle.done()

3.9 pen.right(90) -向右转90

4. 完整代码

# 导入turtle库,用于绘图操作
import turtle  
pen = turtle.Turtle()  

# 创建一个画布对象
canvas = turtle.Screen()  

# 设置窗口标题为"粉色爱心"
canvas.title("粉色爱心")

# 设置画布的颜色
canvas.bgcolor("white")  # 设置画布的背景颜色为白色

# 设置画笔颜色和填充颜色
pen.color("red""pink")  # 设置画笔的颜色为红色,填充颜色为粉红色
pen.pensize(3)  # 设置画笔的宽度为3像素
pen.speed(1)  # 设置绘图速度为1(慢速)

# 绘制爱心形状
pen.up()  # 抬起画笔,停止绘图
pen.goto(0-100)  # 将海龟移动到指定坐标位置,这里是(0, -100)
pen.down()  # 放下画笔,开始绘图
pen.begin_fill()  # 开始填充图形
pen.left(45)  # 向左转45度
pen.forward(150)  # 向前移动150个单位长度
pen.circle(75180)  # 以半径为75,绘制180度的圆弧
pen.right(90)  # 向右转90度
pen.circle(75180)  # 再次以半径为75,绘制180度的圆弧
pen.forward(150)  # 再次向前移动150个单位长度
pen.end_fill()  # 结束填充图形

# 隐藏画笔
pen.hideturtle()  # 隐藏海龟对象,使其不可见

# 保持窗口打开,直到用户关闭它
turtle.done()  # 调用turtle库的done函数,使窗口保持打开状态,直到用户关闭它

【路径解析】

  1. 调整海龟方向,向左转45度。
  2. 在45度方向下向前走150单位。
  3. 画一个半圆。
  4. 向右转9度。
  5. 画一个半圆。
  6. 向前移动150个单位长度。


安迪python学习笔记
python学习笔记,适合初学者。
 最新文章