在Python中,海龟绘图是一个内置的模块,它允许用户通过模拟海龟的移动来绘制图形。这个模块特别适合初学者学习编程和图形学的基础。
导入海龟模块
您可以通过以下代码导入海龟模块:
import turtle
基本绘图函数
turtle.forward(distance)
或turtle.fd(distance)
:使海龟向前移动指定的距离。turtle.backward(distance)
或turtle.bk(distance)
:使海龟向后移动指定的距离。turtle.right(angle)
或turtle.rt(angle)
:使海龟顺时针转动指定的角度。turtle.left(angle)
或turtle.lt(angle)
:使海龟逆时针转动指定的角度。turtle.goto(x, y)
:将海龟移动到指定的坐标位置。turtle.penup()
或turtle.pu()
:提起画笔,移动时不绘制。turtle.pendown()
或turtle.pd()
:放下画笔,移动时绘制。turtle.pensize(width)
:设置画笔的宽度。turtle.pencolor(color)
:设置画笔的颜色。turtle.speed(speed)
:设置海龟移动的速度。
绘制简单图形的示例
以下是一个使用上述函数绘制一个正方形的示例代码:
import turtle
# 创建一个海龟对象
t = turtle.Turtle()
# 设置画笔颜色和填充颜色
t.pencolor("blue")
t.fillcolor("lightblue")
# 设置画笔宽度和速度
t.pensize(3)
t.speed(3)
# 绘制一个带填充色的正方形
t.begin_fill()
for _ in range(4):
t.forward(100)
t.right(90)
t.end_fill()
# 完成绘图
turtle.done()
高级一点,樱花雨如何绘制,请看大屏幕
from turtle import * # 导入 Turtle 绘图库的所有功能
from random import random # 导入 random 模块的 random 函数
from math import cos, radians # 导入 math 模块的 cos 和 radians 函数
def draw_star(size, points, color='pink'):
""" 绘制一个多边形(五角星),可指定颜色 """
pencolor(color) # 设置画笔颜色
angle = 180 - (180 * (points - 2)) / points
begin_fill() # 开始填充颜色
for _ in range(points):
forward(size)
right(180 - angle)
forward(size)
right(angle * 2 - 180)
end_fill() # 结束填充颜色
def draw_circle():
"""绘制粉色小圆圈"""
x = random() * 800 - 400 # 随机生成 x 坐标
y = random() * 600 - 300 # 随机生成 y 坐标
radius = 5 # 小圆圈半径
pencolor('pink') # 设置画笔颜色为粉色
pu()
goto(x, y)
pd()
circle(radius) # 绘制小圆圈
def draw_tree(branch_length, level):
pd() # 下笔,开始绘制
t = cos(radians(heading() + 45)) / 8 + 0.25
pencolor(t, t, t) # 设置画笔颜色
pensize(branch_length / 10) # 根据分支长度设置画笔粗细
forward(branch_length) # 向前移动绘制分支的长度
if level > 0: # 如果还有分支级别
# 随机生成分支的角度和长度
angle1 = random() * 15 + 10
angle2 = random() * 15 + 10
new_length = branch_length * (random() * 0.25 + 0.7)
# 绘制右侧分支
right(angle1)
draw_tree(new_length, level - 1)
# 绘制左侧分支
left(angle1 + angle2)
draw_tree(new_length, level - 1)
# 返回到原始位置和方向
right(angle2)
else: # 如果已经到达最底层
# 在分支末端绘制花朵
# 在分支末端绘制花朵(改为五角星)
if level == 0:
draw_star(10, 5) # 绘制五角星,大小10,5个点
pu() # 抬笔,停止绘制
backward(branch_length) # 后退到原来的位置
def main():
bgcolor(0.956, 0.9255, 0.9882)
speed(10)
hideturtle()
tracer(100)
# 设置绘图窗口大小
screensize(800, 600)
pu()
backward(100)
left(90)
backward(300)
draw_tree(100, 12)
# 洒落粉色小圆圈
for _ in range(100): # 可以根据需要调整小圆圈的数量
draw_circle()
done()
if __name__ == "__main__":
main()
绘图结果如下:
大家快来试一试吧!!!!!!!!!!!!