python-turtle(海龟绘图)圣诞树

前言:

1.在开始前需要引入turtle库,若没有下载这个库可以复制下面这条语句在PyCharm终端下载

 

pip install turtle

2.turtle库,它这个画笔是在这个窗口横轴x轴,纵轴y轴从原点(0,0)处开始,以函数指令使其移动绘图。

正文:

一:开始前引入所需的库

# turtle as t 是将turtle替换为t
import turtle as t
# 随机库
import random
# 引入turtle库中的所有用法
from turtle import *

 二:设置窗口属性和RGB颜色属性以及绘图数度

# 设置窗口大小和背景颜色
t.screensize(800,700,'black')

# RGB默认范围是0~1,通过Screen().colormode设置成0~255
Screen().colormode(255)

# 加快作图数度
t.speed(speed='fastest')

三:画圣诞树

# 画树
t.left(90)
t.forward(-300)
t.pensize(5)
# 设置画笔颜色
t.color('green')
# 开始画树
def tree(d, s):
    if d <= 0:
        return
    forward(s)
    tree(d - 1, s * .8)
    right(120)
    tree(d - 3, s * .5)
    right(120)
    tree(d - 3, s * .5)
    right(120)
    backward(s)
# 调用画树函数
tree(15,100)
backward(50)

四:画五角星

# 画五角星
def xin():
    t.right(90)
    # 设置画笔尺寸
    t.pensize(3)
    # t.circle(40)
    # 抬笔
    t.penup()
    # 将画笔移动到该位置
    t.goto(-25,190)
    # 落笔
    pendown()
    # 开始填充
    t.begin_fill()
    # 设置画笔颜色
    t.color('yellow')
    # 画五角星,一共需要五笔
    for i in range(5):
        t.forward(55)
        t.right(144)
    # 结束填充
    t.end_fill()

# 调用画五角星函数
xin()

五:画天上的星星

# 满天繁星
# 用for循环画17颗星星
for i in range(17):
    # 设置随机坐标
    x=random.randint(-400,400)
    y=random.randint(240,330)
    # 设置星星随机大小
    a=random.randint(5,12)
    # 抬笔
    t.penup()
    # 将画笔移动到随机位置
    t.goto(x,y)
    # 落笔
    t.pendown()
    t.pensize(5)
    t.color('yellow')
    t.begin_fill()
    for i in range(4):
        t.forward(a)
        t.left(30)
        t.forward(a)
        t.right(120)
    # 每画完一颗星星将画笔方向向左改变30度,使星星看起来更加生动
    t.left(30)
    t.end_fill()

六:画彩色气球

#彩色气球
# 利用循环画20个气球
for i in range(20):
    # 设置随机位置
    X=random.randint(-400,400)
    Y=random.randint(-170,150)
    # 抬笔
    t.penup()
    # 将画笔位置移动到初始位置
    t.home()
    # 将画笔移动到随机位置
    t.goto(X, Y)
    # 设置RGB颜色范围
    red=random.randint(100,255)
    green=random.randint(50,155)
    blue=random.randint(100,255)
    # 画笔尺寸
    t.pensize(2)
    # 落笔
    t.pendown()
    # 设置气球线颜色
    t.color('white')
    t.left(90)
    t.circle(80,15)
    t.circle(-80,15)
    t.right(90)
    t.pensize(5)
    # 利用RGB颜色设置气球颜色
    t.color(red,green,blue)
    t.begin_fill()
    t.circle(15)
    t.end_fill()

七:画彩灯

# 彩灯
def light():
    # 隐藏笔头,ht=hideturtle
    t.hideturtle()
    # 利用for循环画100个彩灯
    for i in range(100):
        t.penup()
        # 设置彩灯随机位置
        x=random.randint(-300,300)
        y=random.randint(-350,-300)
        # 设置RGB颜色
        red=random.randint(100,255)
        green=random.randint(50,155)
        blue=random.randint(100,255)
        # 将画笔移动到随机位置
        t.goto(x,y)
        t.pendown()
        t.pensize(5)
        t.color(red,green,blue)
        t.begin_fill()
        t.circle(10)
        t.end_fill()
# 调用彩灯函数
light()

八:画满天飞雪

# 雪花
def drawsnow():
    # 隐藏笔头,ht=hideturtle
    t.hideturtle()
    t.pensize(2)
    for i in range(200):
        t.pencolor("white")
        t.penup()
        # 设置雪花随机位置坐标
        x=random.randint(-400,400)
        y=random.randint(-250,300)
        # 将画笔移动到随机位置
        t.goto(x,y)
        t.pendown()
        # 雪花花瓣数
        petal = 6
        # 设置雪花随机大小
        snowsize = random.randint(1, 10)
        # print(type(snowsize))
        for j in range(petal):
            t.forward(snowsize)
            t.backward(snowsize)
            # 转动角度
            t.right(int(360 / petal))
# 调用雪花函数
drawsnow()

九:画祝福话语

# 添加文字
t.penup()
t.goto(-300,-250)
t.color('red')
t.pendown()
t.write('祝 刘晓云 Merry Christmas!',font=('Mistral',42,'bold italic'))

十:防止绘图完成后窗口秒关

# 防止绘图完成后窗口秒关
t.done()

最后完整代码双手奉上!

import turtle as t
# 随机库
import random
# 引入turtle库中的所有用法
from turtle import *
# 跳过绘图过程
t.tracer(False)
# 设置窗口大小和背景颜色
t.screensize(800,700,'black')

# RGB默认范围是0~1,通过Screen().colormode设置成0~255
Screen().colormode(255)

# 加快作图数度
t.speed(speed='fastest')


# 画树
t.left(90)
t.forward(-300)
t.pensize(5)
# 设置画笔颜色
t.color('green')
# 开始画树
def tree(d, s):
    if d <= 0:
        return
    forward(s)
    tree(d - 1, s * .8)
    right(120)
    tree(d - 3, s * .5)
    right(120)
    tree(d - 3, s * .5)
    right(120)
    backward(s)
# 调用画树函数
tree(15,100)
backward(50)


# 画五角星
def xin():
    t.right(90)
    # 设置画笔尺寸
    t.pensize(3)
    # t.circle(40)
    # 抬笔
    t.penup()
    # 将画笔移动到该位置
    t.goto(-25,190)
    # 落笔
    pendown()
    # 开始填充
    t.begin_fill()
    # 设置画笔颜色
    t.color('yellow')
    # 画五角星,一共需要五笔
    for i in range(5):
        t.forward(55)
        t.right(144)
    # 结束填充
    t.end_fill()

# 调用画五角星函数
xin()


# 满天繁星
# 用for循环画17颗星星
for i in range(17):
    # 设置随机坐标
    x=random.randint(-400,400)
    y=random.randint(240,330)
    # 设置星星随机大小
    a=random.randint(5,12)
    # 抬笔
    t.penup()
    # 将画笔移动到随机位置
    t.goto(x,y)
    # 落笔
    t.pendown()
    t.pensize(5)
    t.color('yellow')
    t.begin_fill()
    for i in range(4):
        t.forward(a)
        t.left(30)
        t.forward(a)
        t.right(120)
    # 每画完一颗星星将画笔方向向左改变30度,使星星看起来更加生动
    t.left(30)
    t.end_fill()




#彩色气球
# 利用循环画20个气球
for i in range(20):
    # 设置随机位置
    X=random.randint(-400,400)
    Y=random.randint(-170,150)
    # 抬笔
    t.penup()
    # 将画笔位置移动到初始位置
    t.home()
    # 将画笔移动到随机位置
    t.goto(X, Y)
    # 设置RGB颜色范围
    red=random.randint(100,255)
    green=random.randint(50,155)
    blue=random.randint(100,255)
    # 画笔尺寸
    t.pensize(2)
    # 落笔
    t.pendown()
    # 设置气球线颜色
    t.color('white')
    t.left(90)
    t.circle(80,15)
    t.circle(-80,15)
    t.right(90)
    t.pensize(5)
    # 利用RGB颜色设置气球颜色
    t.color(red,green,blue)
    t.begin_fill()
    t.circle(15)
    t.end_fill()


# 彩灯
def light():
    # 隐藏笔头,ht=hideturtle
    t.hideturtle()
    # 利用for循环画100个彩灯
    for i in range(100):
        t.penup()
        # 设置彩灯随机位置
        x=random.randint(-300,300)
        y=random.randint(-350,-300)
        # 设置RGB颜色
        red=random.randint(100,255)
        green=random.randint(50,155)
        blue=random.randint(100,255)
        # 将画笔移动到随机位置
        t.goto(x,y)
        t.pendown()
        t.pensize(5)
        t.color(red,green,blue)
        t.begin_fill()
        t.circle(10)
        t.end_fill()
# 调用彩灯函数
light()

# 雪花
def drawsnow():
    # 隐藏笔头,ht=hideturtle
    t.hideturtle()
    t.pensize(2)
    for i in range(200):
        t.pencolor("white")
        t.penup()
        # 设置雪花随机位置坐标
        x=random.randint(-400,400)
        y=random.randint(-250,300)
        # 将画笔移动到随机位置
        t.goto(x,y)
        t.pendown()
        # 雪花花瓣数
        petal = 6
        # 设置雪花随机大小
        snowsize = random.randint(1, 10)
        # print(type(snowsize))
        for j in range(petal):
            t.forward(snowsize)
            t.backward(snowsize)
            # 转动角度
            t.right(int(360 / petal))
# 调用雪花函数
drawsnow()


# 添加文字
t.penup()
t.goto(-300,-250)
t.color('red')
t.pendown()
t.write('祝 刘晓云 Merry Christmas!',font=('Mistral',42,'bold italic'))

# 防止绘图完成后窗口秒关
t.done()

效果如下

 最近今天持续发烧,没来得急上传,赶一波末班车嘻嘻

猜你喜欢

转载自blog.csdn.net/m0_73463638/article/details/128437438
今日推荐