Python圣诞树

简介: 一年一度的圣诞节又要来喽~在这么浪漫的节日里怎么能少的了一个浪漫的程序员呢~让我们一起画个圣诞树,送给你喜欢的那个人吧~

源码见:https://want595.blog.csdn.net/

​​豪华圣诞树.png
1.圣诞树

def tree(d,s):      #运用递归的方法画圣诞树
    t.hideturtle()              #隐藏画笔
    t.pencolor('limegreen')     #画笔颜色置为绿色,用来画树
    t.pensize(5)                #画笔大小为5
    t.speed(0)                  #最快速度画树(其实挺慢的)
    if d<=0:
        return
    t.forward(s)
    tree(d-1,s*0.8)
    t.right(120)
    tree(d-3,s*0.5)
    t.right(120)
    tree(d-3,s*0.5)
    t.right(120)
    t.backward(s)
def trees():          #画完整的圣诞树
    t.hideturtle()          #隐藏画笔
    t.left(90)              #将画笔向左旋转90度
    t.up()                  #提起画笔
    t.goto(0,-110)          #移动画笔到坐标(0,-110)处开始画树
    t.down()
    t.pencolor('saddlebrown')   #先画树根,将画笔置为棕色
    t.pensize(20)           #树根比较粗,画笔大小设置大一点
    t.forward(50)           #树根长度为50个像素
    t.up()                  #提笔
    t.goto(0,-50)           #将画笔移到(0,-50)处
    t.down()
    tree(15,60)             #调用画树的递归函数,慢慢画树
    t.goto(0,250)           #画完树后,将画笔移到(0,250)的位置,准备画大星星
    t.down()
    t.right(90)             #将画笔向右旋转90度,指向右方,准备画大星星
    star()                  #画大星星

2.星星

def star():     #画圣诞树顶的大星星
    t.hideturtle()      #隐藏画笔
    t.pensize(2)        #给画笔设置大小
    t.pencolor("gold")  #给画笔设置颜色,'gold'表示金色
    t.up()              #提起画笔,画笔移动时不会画画
    t.forward(5)        #将画笔向前移5个像素(此时画笔方向向右,即向右移动5个像素)
    t.down()            #画笔放下,画笔移动时会产生轨迹
    t.begin_fill()      #给星星填充颜色
    for i in range(5):  #因为是五角星,所以要循环五次画五个角
        t.forward(20)
        t.right(144)
        t.forward(20)
        t.left(72)
    t.fillcolor('yellow')   #设置填充的颜色
    t.end_fill()
    return
def stars():          #画圣诞树上的小星星
    t.hideturtle()       #隐藏画笔
    t.speed(0)           #设置画画速度,0为最快速
    t.pensize(5)         #设置画笔大小
    for i in range(5):   #循环五次画五个角,与画大星星一样
        t.forward(5)
        t.right(144)
        t.forward(5)
        t.left(72)
    return
def stares():           #循环画圣诞树上的小星星
    t.hideturtle()      #隐藏画笔
    x1=-110   #x1赋初值
    x2=110    #x2赋初值
    y1=-40    #y1赋初值
    y2=-15    #y2赋初值
    n=0       #n用来控制在圣诞树两边画星星
    c = ['red', 'orange', 'yellow', 'brown', 'cyan', 'pink', 'blue', 'blueviolet','gold','white']    #星星的颜色,可自定义
    for i in c:   #循环画不同颜色的星星
        t.pencolor(i)     #每次从颜色列表c中按序取一个颜色
        t.up()      #找画星星的位置时要记得提起画笔
        if n%2==0:        #当n为偶数时在圣诞树左边画星星
            t.setx(r.randint(x1,0))
            t.sety(r.randint(y1,y2))
        else:             #当n为奇数时在圣诞树右边画星星
            t.setx(r.randint(0,x2))
            t.sety(r.randint(y1,y2))
        t.down()
        stars()     #开始画星星
        x1+=10      #每次画完记得按圣诞树的层数要将x1,x2减小,y1,y2上移
        x2-=10
        y1+=25
        y2+=25
        n+=1        #n=n+1

3.雪花

def snow():            #画雪花(全屏)
    t.hideturtle()     #隐藏画笔
    t.pensize(2)       #画笔大小
    t.speed(0)         #画雪花的速度
    for i in range(500):          #循环画500个雪花
        t.pencolor('white')       #雪花是白色的
        t.penup()                 #提笔
        t.setx(r.randint(-1000,1000))     #在画布上随机找点
        t.sety(r.randint(-1000,1000))
        t.pendown()
        snowsize=r.randint(4,10)          #雪花大小
        for i in range(6):            #画雪花(雪花为六瓣,需要循环六次)
            t.forward(int(snowsize))
            t.backward(int(snowsize))
            t.left(60)

4.礼物

def gift():       #画正方体礼物盒
    t.hideturtle()       #隐藏画笔
    t.speed(0)           #画笔速度
    x=40    #礼物盒的长和宽,我设置为正方形礼物盒,长宽高相等
    y=16    #由于是立体图形,宽与长不一样
    for i in range(4):    #以下为画礼物盒的方法(x,y的值可以自行修改)
        t.forward(x)
        t.left(90)
    t.up()
    t.left(45)
    t.forward(y)
    t.right(45)
    t.down()
    for i in range(4):
        t.forward(x)
        t.left(90)
    t.up()
    t.right(135)
    t.forward(y)
    t.down()
    t.left(180)
    t.forward(y)
    t.backward(y)
    t.right(45)
    t.forward(x)
    t.left(45)
    t.forward(y)
    t.backward(y)
    t.left(45)
    t.forward(x)
    t.right(45)
    t.forward(y)
    t.backward(y)
    t.left(135)
    t.forward(x)
    t.right(135)
    t.forward(y)
    t.backward(y)
    t.right(135)
    t.forward(x)
    t.left(90)
def gifts():            #画多个正方体礼物盒
    t.hideturtle()      #隐藏画笔
    t.penup()           #提笔
    t.goto(-180,-150)    #将画笔移到(-180,-150)的位置准备画礼物盒
    t.pendown()
    t.pensize(5)         #画笔大小
    c=['red','orange','yellow','green','cyan','blue','blueviolet']    #礼物盒的颜色
    for i in c:          #循环画不同颜色的礼物盒
        t.up()
        t.forward(40)
        t.down()
        t.pencolor(i)
        gift()

5.祝福

def writes():       #写字:“圣诞快乐!”
    t.pencolor("cyan")      #画笔颜色,天蓝色
    t.hideturtle()          #隐藏画笔
    t.up()
    t.goto(-160,-250)       #从(-160,-250)开始写字
    t.down()
    t.write("Merry Christmas!",font=("Comic Sans MS",30,"bold"))   #开始写字,"Merry Christmas!"为要写的字,"Comic Sans MS"为字体,30为字的大小,bold为粗体(可自行修改要写的字)
目录
相关文章
|
28天前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
2月前
|
机器学习/深度学习 算法 数据挖掘
请解释Python中的决策树算法以及如何使用Sklearn库实现它。
决策树是监督学习算法,常用于分类和回归问题。Python的Sklearn库提供了决策树实现。以下是一步步创建决策树模型的简要步骤:导入所需库,加载数据集(如鸢尾花数据集),划分数据集为训练集和测试集,创建`DecisionTreeClassifier`,训练模型,预测测试集结果,最后通过`accuracy_score`评估模型性能。示例代码展示了这一过程。
|
9天前
|
机器学习/深度学习 算法 数据挖掘
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-2
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
29 1
|
9天前
|
机器学习/深度学习 Python
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-4
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
41 5
|
3天前
|
机器学习/深度学习 数据采集 算法
Python用逻辑回归、决策树、SVM、XGBoost 算法机器学习预测用户信贷行为数据分析报告
Python用逻辑回归、决策树、SVM、XGBoost 算法机器学习预测用户信贷行为数据分析报告
12 1
|
1天前
|
机器学习/深度学习 算法 数据可视化
【Python机器学习专栏】决策树算法的实现与解释
【4月更文挑战第30天】本文探讨了决策树算法,一种流行的监督学习方法,用于分类和回归。文章阐述了决策树的基本原理,其中内部节点代表特征判断,分支表示判断结果,叶节点代表类别。信息增益等标准用于衡量特征重要性。通过Python的scikit-learn库展示了构建鸢尾花数据集分类器的示例,包括训练、预测、评估和可视化决策树。最后,讨论了模型解释和特征重要性评估在优化中的作用。
|
6天前
|
机器学习/深度学习 算法 Python
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享(下)
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
15 1
|
6天前
|
机器学习/深度学习 算法 数据挖掘
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享(上)
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
19 1
|
8天前
|
机器学习/深度学习 存储 数据可视化
数据分享|Python在Scikit-Learn可视化随机森林中的决策树分析房价数据
数据分享|Python在Scikit-Learn可视化随机森林中的决策树分析房价数据
31 12
|
8天前
|
机器学习/深度学习 数据可视化 算法
数据分享|PYTHON用决策树分类预测糖尿病和可视化实例
数据分享|PYTHON用决策树分类预测糖尿病和可视化实例
35 10