python项目:圣诞树

圣诞节快到了,给你心爱的那个Ta准备一棵圣诞树吧

圣诞树

一、效果

请添加图片描述

二、代码

import turtle              # 导入今天我们要用的画图工具turtle模块

import turtle as t
from turtle import *    # 导入模块中的全部方法
import random as r    # 导入随机数模块
import time                # 导入时间模块

n = 100
m = 20

speed("fastest")                 # 画笔速度
t.bgcolor("black")       # 背景色
left(90)
forward(3*n)

color("pink", "red")    # 圣诞树顶五角星的颜色外-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)

def drawlight():                 # 定义画彩灯的方法
   if r.randint(0,30) == 0:   # randint:随机生成一整数
       color('red')          # 第一种彩灯气球颜色
       circle(6)                    # 彩灯大小
   elif r.randint(0,30) == 1:
       color('orange')         # 第二种彩灯气球颜色
       circle(3)
   elif r.randint(0,50) == 1:
       color('yellow')          # 第三种彩灯五角星颜色
       circle(1)
       for i in range(5):       # 画五角星彩灯
           forward(m/5)
           right(144)
           forward(m/5)
           left(72)
   else:
       color('dark green')  # 其余的随机数情况下画绿色树枝

color('dark green')         # 定义全局树枝颜色
backward(n*4)
def tree(d,s):                 # 定义画树方法
   if d <= 0:
       return
   t.pensize(3)
   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)
tree(15,n)                      # 调用画树方法
backward(n/2)

for i in range(200):        # 循环画树下的小装饰
   a = 400 - 800 * r.random()
   b = 10 - 30 * r.random()
   up()
   forward(b)
   left(90)
   forward(a)
   down()
   if r.randint(0,1) == 0:    # 随机生成整数用于随机生成小装饰
       color('red')         # 1.小圈圈
   elif r.randint(0,1) == 0:
       color('yellow')          # 2.五角星
       for i in range(5):
           forward(m/5)
           right(144)
           forward(m/5)
           left(72)
   else:
       color('wheat')          # 3.小圈圈
   circle(2)

   up()
   backward(a)
   right(90)
   backward(b)

t.color("dark red")      # 定义字体颜色
t.write(" 这里输入想在背景显示的句子",align="center",font=("Comic Sans MS",35,"bold"))         # 定义文字版式、位置、大小、颜色。

def drawsnow():              # 定义画雪花方法
   t.ht()                            # 隐藏笔头-hideturtle缩写——ht
   t.pensize(2)
   for i in range(200):                      # 雪花个数
       t.pencolor("white")                 # 白色雪花
       t.pu()                                      # 提笔penup
       t.setx(r.randint(-340,350))    # 定义x,y坐标,表示雪花飘落的范围
       t.sety(r.randint(-150,350))
       t.pd()                        # 落笔pendown
       dens = 6                   # 雪花瓣数设为6
       snowsize = r.randint(1,10)
       for j in range(dens):              # 画雪花
           t.fd(int(snowsize))            # 画线
           t.backward(int(snowsize))
           t.right(int(360/dens))       # 转动角度
drawsnow()
turtle.done()

新手上路

很多细节还不够好,需要继续努力。有些借助了网上信息。学无止境!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值