likes
comments
collection
share

教你用Python给女友画圣诞树(附源代码)

作者站长头像
站长
· 阅读数 14

1 python实现圣诞树

什么,你还不知道怎么画圣诞树?拿去复制粘贴!

相信大家最近都被这样一棵圣诞树刷屏了,用python的turtle库就可以很简单的画出来。

你要说这个有没有难度,我觉得没难度,但创意十足。

下面附上代码,大家可以拿去给自己女朋友画圣诞树了。

2 python代码

import turtle as t
import random
import time
# 代码修改自https://blog.csdn.net/Ding2langdang
def drawlight():
   """
  画彩灯
  """
   if random.randint(0, 30) == 0:
       t.color('tomato')
       t.circle(6)
   elif random.randint(0,30) == 1:
       t.color('orange')
       t.circle(3)
   else:
       t.color('dark green')


def tree(d, s):
   '''
  画树
  '''
   if d <= 0: 
       return
   t.forward(s)
   tree(d-1, s*.8)
   t.right(120)
   tree(d-3, s*.5)
   drawlight()
   t.right(120)
   tree(d-3, s*.5)
   t.right(120)
   t.backward(s)


def drawsnow():
   '''
  画雪花
  '''
   t.ht()
   t.pensize(2)
   for i in range(200):
       t.pencolor("white")
       t.pu()
       t.setx(random.randint(-350,350))
       t.sety(random.randint(-100,350))
       t.pd()
       dens = 6
       snowsize = random.randint(1,10)
       for j in range(dens):
           t.fd(int(snowsize))
           t.backward(int(snowsize))
           t.right(int(360/dens))

n = 100.0

t.speed("fastest") 
t.delay(0) 
t.screensize(bg='black') 
t.left(90)
t.forward(3*n)
t.color("orange", "yellow") 
t.begin_fill()
t.left(126)
for i in range(5):
   t.forward(n/5)
   t.right(144)
   t.forward(n/5)
   t.left(72)
t.end_fill()
t.right(126)

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

tree(15, n)
t.backward(n/2)

for i in range(200):
   a = 200 - 400 * random.random()
   b = 10 - 20 * random.random()
   t.up()
   t.forward(b)
   t.left(90)
   t.forward(a)
   t.down()
   if random.randint(0, 1) == 0:
       t.color('tomato')
   else:
       t.color('wheat')
   t.circle(2)
   t.up()
   t.backward(a)
   t.right(90)
   t.backward(b)

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

drawsnow()
t.done()

3 实现效果

教你用Python给女友画圣诞树(附源代码)

赶紧画出来你自己的圣诞树吧!最后分享一份零基础自学Python教程。