python画几种树

Number1.松树

这是用forward()for循环和random库做出来的

代码:

from turtle import *
import random
speed("fastest")
left(90)
forward(300.0)
color("dark green")
backward(100.0*4.8)
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.0)
backward(100.0/2)
for i in range(200):
    a = 200 - 400 * random.random()
    b = 10 - 20 * random.random()
    forward(b)
    left(90)
    forward(a)
    down()
    if random.randint(0, 1) == 0:
        color('tomato')
    else:
        color('wheat')
    circle(2)
    up()
    backward(a)
    right(90)
    backward(b)

Number2.圣诞树

这个很简单,用for循环就能做出来

代码:

import turtle
screen = turtle.Screen()
screen.setup(800, 600)
circle = turtle.Turtle()
circle.shape('circle')
circle.color('red')
circle.up()
square = turtle.Turtle()
square.shape('square')
square.color('green')
square.up()
circle.goto(0, 280)
circle.stamp()
k = 0
for i in range(1, 17):
    y = 30*i
    for j in range(i-k):
        x = 30*j
        square.goto(x, -y+280)
        square.stamp()
        square.goto(-x, -y+280)
        square.stamp()
    if i % 4 == 0:
        x = 30*(j+1)
        circle.color('red')
        circle.goto(-x, -y+280)
        circle.stamp()
        circle.goto(x, -y+280)
        circle.stamp()
        k += 2
    if i % 4 == 3:
        x = 30*(j+1)
        circle.color('yellow')
        circle.goto(-x, -y+280)
        circle.stamp()
        circle.goto(x, -y+280)
        circle.stamp()
square.color('brown')
for i in range(17, 20):
    y = 30*i
    for j in range(3):
        x = 30*j
        square.goto(x, -y+280)
        square.stamp()
        square.goto(-x, -y+280)
        square.stamp()

Number3.樱花树

Python画樱花树很经典,用到的是random库和if判断。

代码展示:

import random
import turtle

__Pen = turtle.Pen()




def tree(branchLen, t):
    if (branchLen > 3):
        if (8 <= branchLen and branchLen <= 12) :
            if (random.randint(0, 2) == 0) :
                t.pencolor('snow')
            else :
                t.pencolor('lightcoral')
            t.pensize((branchLen / 3))
        elif (branchLen < 8) :
            if (random.randint(0, 1) == 0) :
                t.pencolor('snow')
            else :
                t.pencolor('lightcoral')
            t.pensize((branchLen / 2))
        else :
            t.pencolor('sienna')
            t.pensize((branchLen / 10))
        t.forward(branchLen)
        a = (1.5 * (random.random()))
        t.right((20 * a))
        b = (1.5 * (random.random()))
        
        tree(branchLen - 10 * b, t)
        t.left((40 * a))
        tree(branchLen - 10 * b, t)
        t.right((20 * a))
        t.penup()
        t.backward(branchLen)
        t.pendown()



def petal(m, t):
    for i in range(m):
        a = (200 - 400 * (random.random()))
        b = (10 - 20 * (random.random()))
        t.penup()
        t.forward(b)
        t.left(90)
        t.forward(a)
        t.pendown()
        t.pencolor('lightcoral')
        t.circle(1)
        t.penup()
        t.backward(a)
        t.right(90)
        t.backward(b)

def main():
    t = turtle.Pen()
    __Pen.hideturtle()
    t.speed(0)
    turtle.bgcolor('wheat')
    t.left(90)
    t.penup()
    t.backward(150)
    t.pendown()
    t.pencolor('sienna')
    tree(60, t)
    petal(100, t)
    turtle.done()

main()

就分享这三种树了,还有很多!

               end~~~~~~~~~ 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值