使用Python的Turtle库绘制森林的实例

这是由一个小作业引发的对Python的Turtle库的学习

下面是官方手册:

Turtle官方手册

1.配置编程环境

由于现在的笔记本是临时借的,编程环境不是熟悉的环境,又由于种种原因没有安装成功Anaconda,就尝试了下其他的IDE:

最早接触的Enthought Canopy跑示例程序时各种报错无法解决(Python Kernal Crashed);

最著名的Python IDE是JetBeans的Pycharm,装好以后啥都没跑就占了1G内存(虽然舍友电脑上的没问题);

好在之前装了Notepad++,可以结合原始版本的Python进行简单的编程,具体配置方法参考了下面这篇文章:

初次使用python之在notepad++中直接运行python代码

PS:还尝试了用pip安装jupyter等,发现没有VS2008的支持无法编译一部分文件,改变python的编译器也没效果,只好放弃 = =(反正不是自己电脑hhh)

2.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()
 # 确保不会自动退出

以上这篇使用Python的Turtle库绘制森林的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python turtle 绘制太极图的实例

    效果如下所示: # -*- coding: utf-8 -*- import turtle # 绘制太极图函数 def draw_TJT(R):     turtle.screensize(800, 600, "green")  # 画布长.宽.背景色 长宽单位为像素     turtle.pensize(1)  # 画笔宽度     turtle.pencolor('black')  # 画笔颜色     turtle.speed(10)  # 画笔移动速度     TJT_colo

  • Python使用Turtle库绘制一棵西兰花

    Turtle库是Python中一个强大的绘制图像的函数库,灵活使用Turtle库可以绘制各种好看的图像. 下面介绍使用Turtle库绘制一棵西兰花. 绘制一棵西兰花,从主干出发以一定的角度向左向右生成对称的枝干,再从每个枝干出发向左向右生成对称的枝干,循环此动作,并最终绘制出一棵漂亮的西兰花. 首先导入Turtle库,并设置画笔大小.画笔速度及颜色,并隐藏画笔 from turtle import Turtle p=Turtle() p.pensize(5) p.color(clr) p.hid

  • python 利用turtle库绘制笑脸和哭脸的例子

    我就废话不多说了,直接上代码吧! import turtle turtle.pensize(5) turtle.pencolor("yellow") turtle.fillcolor("red") turtle.penup() turtle.goto(0,-200) turtle.pendown() turtle.circle(200) turtle.penup() turtle.goto(-100,50) turtle.pendown() turtle.begin

  • Python turtle库绘制菱形的3种方式小结

    绘制一个菱形四边形,边长为 200 像素.方法1和2绘制了内角为60和120度的菱形,方法3绘制了内角为90度的菱形. 方法1‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‮‬‫ import turtle as t ls = [30,-30,-150,150]#菱形各边的画笔绝对角度列表 for i in range(4): t.seth(ls[i]) #画笔转向相应绝对角度 t.forward(2

  • 在Python中使用turtle绘制多个同心圆示例

    我就废话不多说了,直接上代码吧! import turtle t = turtle.Pen() my_colors = ("red","green","yellow","black") t.width(4) t.speed(1) for i in range(10): #0 1 2 3 4 t.penup() t.goto(0,-i*10) #0, -100,-200,-300,-400 t.pendown() t.color

  • python 实现turtle画图并导出图片格式的文件

    如下所示: from turtle import* import turtle setup(800,700,300,50) penup() seth(90) fd(100) seth(0) fd(-200) pendown() pensize(3) pencolor("black") seth(0) fd(210) seth(90) fd(20) seth(115) circle(120,129) seth(270) fd(20) seth(270) fd(15) seth(0) fd

  • 利用Python的turtle库绘制玫瑰教程

    turtle的文档:https://docs.python.org/3/library/turtle.html 用Python的turtle库绘图是很简单的,闲来无事就画了一个玫瑰花,下面奉上源码.... 源码: ''' Created on Nov 18, 2017 @author: QiZhao ''' import turtle # 设置初始位置 turtle.penup() turtle.left(90) turtle.fd(200) turtle.pendown() turtle.ri

  • 用python的turtle模块实现给女票画个小心心

    晚上自习无聊 正好拿自己的平板电脑用python写了个小程序,运用turtle模块画一个小心心,并在心上画女票名字的首字母缩写,单纯只为红颜一笑. 代码贴出来,很简单 import turtle import time def liujia(): for i in range (200): turtle.right(1) turtle.forward(1) turtle.color('red','pink') turtle.pensize(2) turtle.speed(10) turtle.g

  • python 利用turtle模块画出没有角的方格

    意思就是画四条直线,四条直线都不能相交即可. #!/usr/bin/python #coding: UTF-8 import turtle import time t = turtle.Pen() for x in range(4): t.up() t.forward(25) t.down() t.forward(100) t.up() t.forward(25) t.down() t.left(90) time.sleep(3) 执行结果见下图 以上这篇python 利用turtle模块画出没

  • 使用Python的Turtle库绘制森林的实例

    这是由一个小作业引发的对Python的Turtle库的学习 下面是官方手册: Turtle官方手册 1.配置编程环境 由于现在的笔记本是临时借的,编程环境不是熟悉的环境,又由于种种原因没有安装成功Anaconda,就尝试了下其他的IDE: 最早接触的Enthought Canopy跑示例程序时各种报错无法解决(Python Kernal Crashed): 最著名的Python IDE是JetBeans的Pycharm,装好以后啥都没跑就占了1G内存(虽然舍友电脑上的没问题): 好在之前装了No

  • Python使用turtle库绘制小猪佩奇(实例代码)

    turtle(海龟)是Python重要的标准库之一,它能够进行基本的图形绘制.turtle图形绘制的概念诞生于1969年,成功应用于LOGO编程语言. turtle库绘制图形有一个基本框架:一个小海龟在坐标系中爬行,其爬行轨迹形成了绘制图形.刚开始绘制时,小海龟位于画布正中央,此处坐标为(0,0),前进方向为水平右方. 在Python3系列版本安装目录的Lib文件夹下可以找到turtle.py文件. 下面通过代码给大家介绍Python使用turtle库绘制小猪佩奇, 具体代码如下所示: # -*

  • Python利用turtle库绘制彩虹代码示例

    语言:Python IDE:Python.IDE 需求 做出彩虹效果 颜色空间 RGB模型:光的三原色,共同决定色相 HSB/HSV模型:H色彩,S深浅,B饱和度,H决定色相 需要将HSB模型转换为RGB模型 代码示例: #-*- coding:utf-8 –*- from turtle import * def HSB2RGB(hues): hues = hues * 3.59 #100转成359范围 rgb=[0.0,0.0,0.0] i = int(hues/60)%6 f = hues/

  • python使用turtle库绘制树

    本文实例为大家分享了python使用turtle库绘制树的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. """ import turtle, datetime def drawGap(): #绘制数码管间隔 turtle.penup() turtle.fd(5) def drawLine(draw): #绘制

  • python使用turtle库绘制奥运五环

    Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形. 效果图: #奥运五环 import turtle turtle.setup(1.0,1.0) #设置窗口大小 turtle.title("奥运五环") #蓝圆 turtle.penup() turtle.right(90) turtle.forward(-50) tu

  • Python利用Turtle库绘制一个小老虎

    目录 导语 1.定义库以及初始化界面 2.画出左右两只耳朵 3.画出小老虎头部轮廓 4. 画出老虎的两只眼睛 5.画出老虎的鼻子和嘴巴 6.画出小老虎的左右肢体和脚趾 7.在需要的位置写上我们的新年祝福 8. 显示倒数3,2,1 9.显示我们需要的文字 10.设定代码运行入口,调用目标函数 成果展示 导语 哈喽铁汁们好久不见吖~小编已经复工了于是马不停蹄赶来给大家准备新年礼物算开工礼物吧! 海龟来作图 虎年就是要画老虎 2022不用纸和笔~ 今晚画老虎~ 一二三四五 老虎宝宝示意图 虎年怎么能少

  • Python利用Turtle库绘制一颗樱花树

    后唐李煜曾说道,樱花落尽春将困,秋千架下归时.漏暗斜月迟迟,花在枝.樱花落尽的时候春天也将过去了,秋千架下归去时.天上的斜月姗姗来迟,花还在枝头. 关于python画图相关的,我们一直使用的是turtle来画,用专业的非标准库来做专业的事儿.将需要使用到的内置库或者非标准库全部都导入到当前的代码块中. from time import sleep # 用于控制程序运行时的阻塞停顿 from turtle import * # 绘图相关接口 import random # 生成随机数 设置全局需要

随机推荐