python做出来的作品_python做什么作品-问答-阿里云开发者社区-阿里云

Do what you want to do.

An example:

!/usr/bin/env python3

""" turtlegraphics-example-suite:

tdemo_forest.py

Displays a 'forest' of 3 breadth-first-trees

similar to the one in tree.

For further remarks see tree.py

This example is a 'breadth-first'-rewrite of

a Logo program written by Erich Neuwirth. See

http://homepage.univie.ac.at/erich.neuwirth/

"""

from turtle import Turtle, colormode, tracer, mainloop

from random import randrange

from time import clock

def symRandom(n):

return randrange(-n,n+1)

def randomize( branchlist, angledist, sizedist ):

return [ (angle+symRandom(angledist),

sizefactor*1.01**symRandom(sizedist))

for angle, sizefactor in branchlist ]

def randomfd( t, distance, parts, angledist ):

for i in range(parts):

t.left(symRandom(angledist))

t.forward( (1.0 * distance)/parts )

def tree(tlist, size, level, widthfactor, branchlists, angledist=10, sizedist=5):

# benutzt Liste von turtles und Liste von Zweiglisten,

# fuer jede turtle eine!

if level > 0:

lst = []

brs = []

for t, branchlist in list(zip(tlist,branchlists)):

t.pensize( size * widthfactor )

t.pencolor( 255 - (180 - 11 * level + symRandom(15)),

180 - 11 * level + symRandom(15),

0 )

t.pendown()

randomfd(t, size, level, angledist )

yield 1

for angle, sizefactor in branchlist:

t.left(angle)

lst.append(t.clone())

brs.append(randomize(branchlist, angledist, sizedist))

t.right(angle)

for x in tree(lst, size*sizefactor, level-1, widthfactor, brs,

angledist, sizedist):

yield None

def start(t,x,y):

colormode(255)

t.reset()

t.speed(0)

t.hideturtle()

t.left(90)

t.penup()

t.setpos(x,y)

t.pendown()

def doit1(level, pen):

pen.hideturtle()

start(pen, 20, -208)

t = tree( [pen], 80, level, 0.1, [[ (45,0.69), (0,0.65), (-45,0.71) ]] )

return t

def doit2(level, pen):

pen.hideturtle()

start(pen, -135, -130)

t = tree( [pen], 120, level, 0.1, [[ (45,0.69), (-45,0.71) ]] )

return t

def doit3(level, pen):

pen.hideturtle()

start(pen, 190, -90)

t = tree( [pen], 100, level, 0.1, [[ (45,0.7), (0,0.72), (-45,0.65) ]] )

return t

Hier 3 Baumgeneratoren:

def main():

p = Turtle()

p.ht()

tracer(75,0)

u = doit1(6, Turtle(undobuffersize=1))

s = doit2(7, Turtle(undobuffersize=1))

t = doit3(5, Turtle(undobuffersize=1))

a = clock()

while True:

done = 0

for b in u,s,t:

try:

b.__next__()

except:

done += 1

if done == 3:

break

tracer(1,10)

b = clock()

return "runtime: %.2f sec." % (b-a)

if name == '__main__':

main()

mainloop()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值