【圣诞节特辑】Python编程 圣诞树教程 (附代码)

Python海龟turtle基础知识大全与画图集合 

http://t.csdn.cn/gKl9A

直接安排程序步骤

1.已入需要的库

import turtle as  t
from turtle import *
import random as r
import  time

2.定义画彩灯函数

#定义画彩灯的函数
def drawlight():
    if r.randint(0,30) == 0:         #randint用来生成随机数
        color('tomato')              #颜色()
        circle(6)                    #根据半径radius绘制extent角度的弧形
    elif r.randint(0,30) == 1:
        color('orange')              #颜色()
        circle(3)
    else:
        linewidth = 5                #线型
        color('dark green')          #颜色

3.定义画圣诞树的函数

#定义画圣诞树的函数
def tree(d,s):         #定义函数 树
    if d <= 0:  return   #返回函数的返回值
    forward(s)           #向前
    tree(d-1, s * .8)
    right(120)           #方向 向右
    tree(d-3, s * .5)
    drawlight()          
    right(120)
    tree(d-3, s * .5)
    right(120)
    backward(s)          #向后 

4.定义树下面小装饰的函数

#定义树下面小装饰的函数
def  xzs():
    for i in range(200):              #范围
        a = 200-400* r.random()       # random模块用于生成随机数
        b = 10 -20* r.random()
        up()
        forward(b)                    #向前
        left(90)                      #左边
        forward(a)
        down()                        #向下
        if  r.randint(0,1) == 0:
            color('tomato')
        else:
            color('wheat')
        circle(2)                      #圆
        up()
        backward(a)
        right(90)
        backward(b)

5.定义一个画雪花的函数 

#定义一个画雪花的函数
def drawsnow():
    t.hideturtle()                   #这个方法是用来使Turtle隐身的。          
    t.pensize(2)                     #pensize(数字)可以设置画笔的宽度
    for i in range(200):
        t.pencolor("white")
        t.penup()
        t.setx(r.randint(-350,350))   #将当前x轴移动到指定位置
        t.sety(r.randint(-100,350))   #将当前y轴移动到指定位置
        t.pendown()                   #放下画笔
        dens = 6
        snowsize = r.randint(1,10)    #生成随机数
        for j in range(dens):
            t.forward(int(snowsize))
            t.backward(int(snowsize))
            t.right(int(360/dens))

6.画五角星

#画五角星
for i in range(5):
    forward(n/5)
    right(144)
    forward(n/5)
    left(72)
 
end_fill()
right(126)
 
color("dark green")
backward(n * 4.8)

 7.写文字

#写文字
t.color("dark red", "red")
t.write("Merry Christmas", align="center", font=("Comic Sans MS", 40, "bold"))
#写 "Merry Christmas" 使成一条直线  居中   字体   似手写的字体   40  粗体
 

整体代码:

import turtle as  t
from turtle import *
import random as r
import time


# 定义几个函数先

# 定义画彩灯的函数
def drawlight():
    if r.randint(0, 30) == 0:
        color('tomato')
        circle(6)
    elif r.randint(0, 30) == 1:
        color('orange')
        circle(3)
    else:
        linewidth = 5
        color('dark green')


# 定义画圣诞树的函数
def tree(d, s):
    if d <= 0:  return
    forward(s)
    tree(d - 1, s * .8)
    right(120)
    tree(d - 3, s * .5)
    drawlight()
    right(120)
    tree(d - 3, s * .5)
    right(120)
    backward(s)


# 定义树下面小装饰的函数
def xzs():
    for i in range(200):
        a = 200 - 400 * r.random()
        b = 10 - 20 * r.random()
        up()
        forward(b)
        left(90)
        forward(a)
        down()
        if r.randint(0, 1) == 0:
            color('tomato')
        else:
            color('wheat')
        circle(2)
        up()
        backward(a)
        right(90)
        backward(b)


# 定义一个画雪花的函数
def drawsnow():
    t.hideturtle()
    t.pensize(2)
    for i in range(200):
        t.pencolor("white")
        t.penup()
        t.setx(r.randint(-350, 350))
        t.sety(r.randint(-100, 350))
        t.pendown()
        dens = 6
        snowsize = r.randint(1, 10)
        for j in range(dens):
            t.forward(int(snowsize))
            t.backward(int(snowsize))
            t.right(int(360 / dens))


n = 100.0
t.pensize(10)
speed("fastest")
t.screensize(800, 600, "black")
left(90)
forward(3 * n)
color("orange", "yellow")
begin_fill()
left(126)

# 画五角星
for i in range(5):
    forward(n / 5)
    right(144)
    forward(n / 5)
    left(72)

end_fill()
right(126)

color("dark green")
backward(n * 4.8)

# 调用画树的函数
tree(15, n)
backward(n / 2)

xzs()

# 写文字
t.color("dark red", "red")
t.write("Merry Christmas", align="center", font=("Comic Sans MS", 40, "bold"))

# 调用雪花函数
drawsnow()

t.done()  # 收笔

 成果展示:

 

参考:https://blog.csdn.net/yj11290301/article/details/128239545

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值