您当前的位置:首页 > 计算机 > 编程开发 > Python

手把手教你基于Python实现简单绘图

时间:07-19来源:作者:点击数:

基本介绍

turtle库是Python语言中自带的一个用于绘制图像的函数库。turtle库为使用者提供一个或多个小乌龟作为画笔,使用者可通过turtle库提供的各种方法去控制小乌龟在一个平面直角坐标系中移动并绘制移动轨迹以画出想要的图案

主要角色:

  1. 海龟(Turtle):海龟是 Turtle Graphics 中的主要角色,它可以在屏幕上移动并绘制图形。海龟有一个位置(x,y),以及一个朝向(角度)。
  2. 画布(Canvas):画布是用于绘制图形的空间,通常是一个二维平面。海龟在画布上移动和绘制图形。
  3. 控制命令:通过发送控制命令给海龟,可以控制它在画布上的行为。例如,前进/后退一定距离、转向一定角度、抬起/放下画笔等。
  4. 绘图命令:绘图命令可以让海龟在画布上绘制各种图形,例如直线、圆、多边形等。绘图命令通常和控制命令结合使用,可以创建复杂的图案。

使用步骤

第一步当然是导库:在 Python 中使用 turtle 库,首先需要导入库。可以使用以下语句导入 turtle:

import turtle

创建画布和海龟:使用 turtle.Screen() 函数创建一个画布,并使用 turtle.Turtle() 函数创建一个海龟对象。可以给海龟对象起一个名字,例如:

screen = turtle.Screen() t = turtle.Turtle()

控制命令:通过调用海龟对象的方法,可以控制海龟在画布上的行为。常用的控制命令包括:

  • t.forward(distance):向前移动指定距离
  • t.backward(distance):向后移动指定距离
  • t.left(angle):左转指定角度
  • t.right(angle):右转指定角度
  • t.penup():抬起画笔
  • t.pendown():放下画笔

绘图命令:通过调用海龟对象的方法,可以让海龟在画布上绘制各种图形。常用的绘图命令包括:

  • t.circle(radius):绘制一个圆,指定半径
  • t.dot(size):绘制一个点,指定大小
  • t.polygon(n, side_length):绘制一个正多边形,指定边数和边长

控制海龟速度:可以使用 t.speed(speed) 方法设置海龟移动的速度,速度值范围为 1-10。

关闭画布:在程序结束时,可以使用 screen.bye()turtle.done() 方法关闭画布。

从画一个小星星说起

import turtle

# 创建画布和海龟
screen = turtle.Screen()
t = turtle.Turtle()

# 设置海龟的属性
t.shape("turtle")
t.color("blue")

# 画五角星
for _ in range(5):
    t.forward(100)
    t.right(144)

# 关闭画布
turtle.done()

它创建了一个画布和一个海龟对象,并设置海龟形状为乌龟形状、颜色为蓝色。然后使用循环绘制了五角星,最后关闭了画布。

  1. for _ in range(5):开始一个循环,循环次数为 5 次,表示要画一个五角星。
  2. t.forward(100):海龟向前移动 100 个单位长度。
  3. t.right(144):海龟右转 144 度,这样海龟的方向就变成了下一个顶点的方向

画一个圣诞树

import turtle

# 创建画布和两只乌龟
screen = turtle.Screen()
screen.setup(375, 700)
circle = turtle.Turtle()  # 用于绘制圆形装饰品的乌龟
circle.shape('circle')
circle.color('red')
circle.speed('fastest')
circle.up()

square = turtle.Turtle()  # 用于绘制方形装饰品的乌龟
square.shape('square')
square.color('green')
square.speed('fastest')
square.up()

# 绘制圆形装饰品
circle.goto(0, 280)
circle.stamp()

# 绘制方形装饰品
k = 0
for i in range(1, 13):
    y = 30 * i
    for j in range(i - k):
        x = 30 * j
        square.goto(x, -y + 280)
        square.stamp()
        square.goto(-x, -y + 280)
        square.stamp()

    if i % 4 == 0:
        x = 30 * (j + 1)
        circle.color('red')
        circle.goto(-x, -y + 280)
        circle.stamp()
        circle.goto(x, -y + 280)
        circle.stamp()
        k += 3

    if i % 4 == 3:
        x = 30 * (j + 1)
        circle.color('yellow')
        circle.goto(-x, -y + 280)
        circle.stamp()
        circle.goto(x, -y + 280)
        circle.stamp()

# 绘制树干
square.color('brown')
for i in range(13, 17):
    y = 30 * i
    for j in range(2):
        x = 30 * j
        square.goto(x, -y + 280)
        square.stamp()
        square.goto(-x, -y + 280)
        square.stamp()

# 关闭画布
turtle.done()

绘制带有圆形和方形装饰品的圣诞树。圆形装饰品使用红色和黄色交替,方形装饰品使用绿色。树干使用棕色。通过循环和条件语句,乌龟根据不同的行数和位置,绘制不同颜色的装饰品。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐