qpython3手机版turtle_使用Python turtle画一片树林

原标题:使用Python turtle画一片树林

使用Python Turtle绘制一片树林代码

这段代码结合了随机函数来使树林更多样化,同时设置了颜色的渐变。几乎每句都有注释,还有不懂的函数可以到官方手册查

示例中的yield语句和pass语句的用法非常精髓,可以再研究一下

# -*- coding: utf-8 -*-

from turtle import Turtle, mainloop

from time import clock

import random

def tree(plist, l, a, f):

"""

plist 是turtle箭头的列表

l 是初始树枝的长度

a 是两根树枝之间夹角的一半

f 是每层树枝之间长度的因数.

"""

r = random.randint(2,3)

if l > 3:

lst = []

for p in plist:

if l < 50:

p.color(34,int(200-3*l),34)

p.pensize(3)

p.forward(l)

#沿当前方向前进l

q = p.clone()

#创建一个副本

if(r==3):

m = p.clone()

m.left(random.randint(-5,5))

lst.append(m)

p.left(a+random.randint(-10,10))

#原本左转a度

q.right(a+random.randint(-10,10))

#副本右转a度

lst.append(p)

lst.append(q)

#将p,q分别加到列表后

for x in tree(lst, l*f, a, f):

yield None

def maketree(l,a,f,x,y):

'''这个函数用来初始化箭头的参数

l 是初始树枝的长度

a 是两根树枝之间夹角的一半

f 是每层树枝之间长度的因数

x和y是树根位置,(0,0)在屏幕中心

'''

p = Turtle()

#创建一个Turtle类的对象

p.getscreen().colormode(255)

# 获得屏幕句柄,可以对其进行操作

#颜色模式改为255,可以使用RGB颜色

p.pencolor(139,69,19)

#p.color('brown')

#Turtle的颜色为棕色

p.pensize(6)

#笔的大小为6

p.setundobuffer(None)

#不设置撤销缓冲区

p.hideturtle()

#隐藏箭头

p.speed(0)

#设置速度,0-10,0是最快的

p.getscreen().tracer(5000,0)

# 获得屏幕句柄,可以对其进行操作

# 每5000次操作将屏幕刷新,延时为0

p.left(90)

# 将Turtle的前进方向左转90度,使方向竖直向上

p.penup()

# 把笔抬起来

p.goto(x,y)

#p.forward(-210)

# 笔向前移动-210个单位(向后移动210个像素)

p.pendown()

# 把笔放下

#这三条语句是一个组合相当于先把笔收起来再移动到指定位置,再把笔放下开始画

#否则turtle一移动就会自动的把线画出来

t = tree([p], l, a, f)

for x in t:

pass

#print(len(p.getscreen().turtles()))

#输出箭头总数

def main():

a=clock()

maketree(100,35,0.6375,-100,-210)

maketree(110,60,0.67,-400,-100)

maketree(120,30,0.6,500,-160)

maketree(145,45,0.65,150,-80)

b=clock()

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

if __name__ == "__main__":

msg = main()

print(msg)

mainloop()

# 确保不会自动退出

效果图如下:

c8b0d30db73f4e8eaf87049e1b3586dc.jpeg

本文永久更新链接地址:https://www.linuxidc.com/Linux/2019-03/157788.htm返回搜狐,查看更多

责任编辑:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1380624.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

DC电源模块关于的电路布局设计

BOSHIDA DC电源模块关于的电路布局设计 DC电源模块是现代电子设备中常用的电源模块之一&#xff0c;其功能是将市电或其他输入电源转换成定电压、定电流的直流电源输出&#xff0c;以满足电子设备的供电需求。电路布局的设计是DC电源模块的重要组成部分&#xff0c;它直接影响…

chrome V3 插件开发 基础

目录 准备popup通信popup 发消息给 backgroundpopup 发消息给 content长期连接 如何页面上添加一个按钮&#xff1f;tabs.onUpdatedcontent-script.jsinject.js 右键菜单chrome.contextMenus举个例子添加关于报错&#xff08;cannot create item with duplicate id XXX&#xf…

论如何科学的看小本子

看本子的问题一直困扰着很多人&#xff0c;有些需要注册&#xff0c;有些没有资源&#xff0c;有些广告很多。 这里&#xff0c;推荐一款用起来比较好的本子应用。 大概长这个样子 这个东西怎么用&#xff1f;我不知道。 这个东西能干什么&#xff1f;我也不知道。 但是&am…

STM32入门——DMA数据搬运工

DMA简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输&#xff0c;无须CPU干预&#xff0c;节省了CPU的资源12个独立可配置的通道&#xff1a; DMA1&#xff08;7个通道&#xff09;&#xff…

HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具

公文一键排版系统基本完成&#xff0c;准备继续完善SysInfo&#xff0c;增加用户帐户信息&#xff0c;其中涉及到Win32_Account结构&#xff0c;其C定义如下&#xff1a; [Dynamic, Provider("CIMWin32"), UUID("{8502C4CC-5FBB-11D2-AAC1-006008C78BC7}"…

分享给大家一个免费使用网络字体的方法

如题&#xff0c;给各位朋友分享一个免费使用字体的方法&#xff0c;因为现在网上的字体大部分都需要付费使用&#xff0c;而我们有时候只需要字体中的一两个字&#xff0c;如果为这一两个字花十几块&#xff0c;还是有点肉疼的&#xff0c;尊重版权的另说&#xff1b; 好了&a…

质心计算公式

求曲线质心&#xff1a; 对于曲线L&#xff0c;设密度公式为F(x,y)&#xff0c;则质心公式为 这是求质心的x坐标&#xff0c;求另外一个坐标类似。同时&#xff0c;这个公式可以推广到多元函数求积分&#xff0c;原理依然是要求的坐标乘以密度公式积分除以密度公式做积分 求区…

能量信号和功率信号

能量信号为功率信号的积分&#xff0c;功率信号为能量信号的密度。对于一个信号&#xff0c;yf(x)&#xff0c;能量相当于曲线和x轴的积分面积&#xff0c;功率相当于y值。当一个信号的积分面积无穷大&#xff0c;但是能找到一个不是无穷大的平均y值&#xff0c;那么这就是功率…

信号能量、功率、功率谱密度、自相关函数公式总结

已知时域求能量与功率 若 x(t) 为能量讯号&#xff0c;其总能量&#xff1a; 若 x(t) 为功率信号&#xff0c;其平均功率&#xff1a; 若 x(t) 为周期信号且基本周期为 &#xff0c;其平均功率&#xff1a; 已知频域求能量 (1)由时域求能量&#xff1a; (2)根据傅立叶逆转…

瞬时功率与有功功率计算公式

一 基本概念 瞬时功率是指某一时刻电压与电流的乘积&#xff0c;记瞬时电压为u(t)&#xff0c;瞬时电流为i(t)&#xff0c;瞬时功率为p(t)&#xff0c;则&#xff1a;   瞬时功率计算公式 在交流电路中&#xff0c;有功功率是指一个周期内发出或负载消耗的瞬时功率的积分的…

关于光伏发电量计算公式疑问

GB50797&#xff0d;2012&#xff0c;光伏发电站设计规范中&#xff0c;对于“ E s E_s Es​——标准条件下的辐照度”的描述&#xff0c;在2.2.1章节中和6.6.2章节中表述不一致。 百度百科上辐照度的概念是&#xff1a; 辐射照度又称辐照度&#xff0c;是受照面单位面积上的辐…

能量估计

能量估计 设 ( x 0 , t 0 ) (x_0,t_0) (x0​,t0​) 为上半平面 Q Q Q 内任意点&#xff0c;通过这点向下做两条特征线 x x 0 a ( t 0 − t ) xx_0\pm a(t_0-t) xx0​a(t0​−t) &#xff0c;这两条特征线与 x x x 轴围成的三角形区域称为以 ( x 0 , t 0 ) (x_0,t_0) (x…

功率谱密度(功率信号)、能量谱密度(能量信号)详解

一、能量信号和功率信号 根据信号可以用能量式或功率式表示可分为能量信号和功率信号。 能量信号&#xff0c;如各类瞬变信号。 在非电量测量中&#xff0c;常将被测信号转换为电压或电流信号来处理。显然&#xff0c;电压信号加在单位电阻&#xff08;R1时&#xff09;上的瞬时…

图像熵的计算公式

【关联文章】&#xff1a;信息熵的数值计算公式_多元信息熵计算_Dust_Evc的博客-CSDN博客 图像熵&#xff08;image entropy&#xff09;是图像“繁忙”程度的估计值。 图像熵表示为图像灰度级集合的比特平均数&#xff0c;单位比特/像素&#xff0c;也描述了图像信源的平均信息…

第二章第十题(科学:计算能量)(Science: calculating energy)

2.10&#xff08;科学&#xff1a;计算能量&#xff09;编写程序&#xff0c;计算将水从初始温度加热到最终温度所需的能量。程序应该提示用户输入水的重量&#xff08;以千克为单位&#xff09;&#xff0c;以及水的初始温度和最终温度。 计算能量的公式是&#xff1a;Q M …

日常BUG —— Java判空注解

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一. 问题描述 问题一&#xff1a; 在使用Java自带的注解NotNull、NotEmpty、NotBlank时报错&#xff0c;…

户外组网摆脱布线困扰,工业5G网关实现无人值守、远程实时监控

在物联网通信技术发达的2023&#xff0c;网络覆盖对所及之处的全面覆盖&#xff0c;科技发展的促使下很多高危户外场景也在思考如何利用无线技术提高人员安全及现场无人化管理。 煤矿是我们国家不可缺少的重要能源&#xff0c;其开采过程的危险系数也是众所皆知的&#xff0c;…

五子棋天人合一对局

五子棋使用了四子绝对双杀&#xff0c;打败了最高难度电脑《天人合一》。

【Java----工具类】字符串转义与反转义

apache工具包common-lang中有一个很有用的处理字符串的工具类&#xff0c;其中之一就是StringEscapeUtils,这个工具类是在2.3版本以上加上的去的&#xff0c;利用它能很方便的进行html,xml,Java等的转义与反转义&#xff0c;而且还能对关键字符串进行处理预防SQL注入&#xff0…