使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例


Posted in Python onMarch 16, 2020

今天为大家介绍几个Python“装逼”实例代码,python绘制樱花、玫瑰、圣诞树代码实例,主要使用了turtle库

Python绘制樱花代码实例

动态生成樱花

效果图(这个是动态的):

使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例

实现代码

import turtle as T
import random
import time
# 画樱花的躯干(60,t)
def Tree(branch, t):
  time.sleep(0.0005)
  if branch > 3:
    if 8 <= branch <= 12:
      if random.randint(0, 2) == 0:
        t.color('snow') # 白
      else:
        t.color('lightcoral') # 淡珊瑚色
      t.pensize(branch / 3)
    elif branch < 8:
      if random.randint(0, 1) == 0:
        t.color('snow')
      else:
        t.color('lightcoral') # 淡珊瑚色
      t.pensize(branch / 2)
    else:
      t.color('sienna') # 赭(zhě)色
      t.pensize(branch / 10) # 6
    t.forward(branch)
    a = 1.5 * random.random()
    t.right(20 * a)
    b = 1.5 * random.random()
    Tree(branch - 10 * b, t)
    t.left(40 * a)
    Tree(branch - 10 * b, t)
    t.right(20 * a)
    t.up()
    t.backward(branch)
    t.down()
# 掉落的花瓣
def Petal(m, t):
  for i in range(m):
    a = 200 - 400 * random.random()
    b = 10 - 20 * random.random()
    t.up()
    t.forward(b)
    t.left(90)
    t.forward(a)
    t.down()
    t.color('lightcoral') # 淡珊瑚色
    t.circle(1)
    t.up()
    t.backward(a)
    t.right(90)
    t.backward(b)
# 绘图区域
t = T.Turtle()
# 画布大小
w = T.Screen()
t.hideturtle() # 隐藏画笔
t.getscreen().tracer(5, 0)
w.screensize(bg='wheat') # wheat小麦
t.left(90)
t.up()
t.backward(150)
t.down()
t.color('sienna')
# 画樱花的躯干
Tree(60, t)
# 掉落的花瓣
Petal(200, t)
w.exitonclick()

飘落效果

效果图:

使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例

代码:

from turtle import *
from random import *
from math import *
def tree(n,l):
  pd()#下笔
  #阴影效果
  t = cos(radians(heading()+45))/8+0.25
  pencolor(t,t,t)
  pensize(n/3)
  forward(l)#画树枝
  if n>0:
    b = random()*15+10 #右分支偏转角度
    c = random()*15+10 #左分支偏转角度
    d = l*(random()*0.25+0.7) #下一个分支的长度
    #右转一定角度,画右分支
    right(b)
    tree(n-1,d)
    #左转一定角度,画左分支
    left(b+c)
    tree(n-1,d)
    #转回来
    right(c)
  else:
    #画叶子
    right(90)
    n=cos(radians(heading()-45))/4+0.5
    pencolor(n,n*0.8,n*0.8)
    circle(3)
    left(90)
    #添加0.3倍的飘落叶子
    if(random()>0.7):
      pu()
      #飘落
      t = heading()
      an = -40 +random()*40
      setheading(an)
      dis = int(800*random()*0.5 + 400*random()*0.3 + 200*random()*0.2)
      forward(dis)
      setheading(t)
      #画叶子
      pd()
      right(90)
      n = cos(radians(heading()-45))/4+0.5
      pencolor(n*0.5+0.5,0.4+n*0.4,0.4+n*0.4)
      circle(2)
      left(90)
      pu()
      #返回
      t=heading()
      setheading(an)
      backward(dis)
      setheading(t)
  pu()
  backward(l)#退回
bgcolor(0.5,0.5,0.5)#背景色
ht()#隐藏turtle
speed(0)#速度 1-10渐进,0 最快
tracer(0,0)
pu()#抬笔
backward(100)
left(90)#左转90度
pu()#抬笔
backward(300)#后退300
tree(12,100)#递归7层
done()

暗色效果

效果:

使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例

代码

from turtle import *
from random import *
from math import *
def tree(n, l):
  pd()
  t = cos(radians(heading() + 45)) / 8 + 0.25
  pencolor(t, t, t)
  pensize(n / 4)
  forward(l)
  if n > 0:
    b = random() * 15 + 10
    c = random() * 15 + 10
    d = l * (random() * 0.35 + 0.6)
    right(b)
    tree(n - 1, d)
    left(b + c)
    tree(n - 1, d)
    right(c)
  else:
    right(90)
    n = cos(radians(heading() - 45)) / 4 + 0.5
    pencolor(n, n, n)
    circle(2)
    left(90)
  pu()
  backward(l)
bgcolor(0.5, 0.5, 0.5)
ht()
speed(0)
tracer(0, 0)
left(90)
pu()
backward(300)
tree(13, 100)
done()

Python绘制玫瑰花代码实例

效果(有绘制过程)

使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例

代码

from turtle import *
import time
setup(1000,800,0,0)
speed(0)
penup()
seth(90)
fd(340)
seth(0)
pendown()
speed(5)
begin_fill()
fillcolor('red')
circle(50,30)
for i in range(10):
  fd(1)
  left(10)
circle(40,40)
for i in range(6):
  fd(1)
  left(3)
circle(80,40)
for i in range(20):
  fd(0.5)
  left(5)
circle(80,45)
for i in range(10):
  fd(2)
  left(1)
circle(80,25)
for i in range(20):
  fd(1)
  left(4)
circle(50,50)
time.sleep(0.1)
circle(120,55)
speed(0)
seth(-90)
fd(70)
right(150)
fd(20)
left(140)
circle(140,90)
left(30)
circle(160,100)
left(130)
fd(25)
penup()
right(150)
circle(40,80)
pendown()
left(115)
fd(60)
penup()
left(180)
fd(60)
pendown()
end_fill()
right(120)
circle(-50,50)
circle(-20,90)
speed(1)
fd(75)
speed(0)
circle(90,110)
penup()
left(162)
fd(185)
left(170)
pendown()
circle(200,10)
circle(100,40)
circle(-52,115)
left(20)
circle(100,20)
circle(300,20)
speed(1)
fd(250)
penup()
speed(0)
left(180)
fd(250)
circle(-300,7)
right(80)
circle(200,5)
pendown()
left(60)
begin_fill()
fillcolor('green')
circle(-80,100)
right(90)
fd(10)
left(20)
circle(-63,127)
end_fill()
penup()
left(50)
fd(20)
left(180)
pendown()
circle(200,25)
penup()
right(150)
fd(180)
right(40)
pendown()
begin_fill()
fillcolor('green')
circle(-100,80)
right(150)
fd(10)
left(60)
circle(-80,98)
end_fill()
penup()
left(60)
fd(13)
left(180)
pendown()
speed(1)
circle(-200,23)
exitonclick()

Python绘制圣诞树代码实例

圣诞树 (动态生成效果)

使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例

代码:

from turtle import *
import random
import time
n = 100.0
speed("fastest")
screensize(bg='seashell')
left(90)
forward(3*n)
color("orange", "yellow")
begin_fill()
left(126)
for i in range(5):
  forward(n/5)
  right(144)
  forward(n/5)
  left(72)
end_fill()
right(126)
color("dark green")
backward(n*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, n)
backward(n/2)
for i in range(200):
  a = 200 - 400 * random.random()
  b = 10 - 20 * random.random()
  up()
  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)
time.sleep(60)

本文主要介绍了Python使用turtle库绘制樱花、玫瑰、圣诞树代码实例,更多关于Python图像模块turtle库的使用方法请查看下面的相关链接

Python 相关文章推荐
Python自动化测试Eclipse+Pydev 搭建开发环境
Aug 15 Python
浅谈python socket函数中,send与sendall的区别与使用方法
May 09 Python
Python探索之实现一个简单的HTTP服务器
Oct 28 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
Jul 11 Python
python使用Matplotlib画条形图
Mar 25 Python
Django框架搭建的简易图书信息网站案例
May 25 Python
django 控制页面跳转的例子
Aug 06 Python
python协程gevent案例 爬取斗鱼图片过程解析
Aug 27 Python
python中调试或排错的五种方法示例
Sep 12 Python
使用PyOpenGL绘制三维坐标系实例
Dec 24 Python
matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)
Jan 10 Python
Python基于Opencv识别两张相似图片
Apr 25 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
Mar 16 #Python
Python3.6 中的pyinstaller安装和使用教程
Mar 16 #Python
python pandas利用fillna方法实现部分自动填充功能
Mar 16 #Python
Python Flask上下文管理机制实例解析
Mar 16 #Python
Python threading.local代码实例及原理解析
Mar 16 #Python
python实现ssh及sftp功能(实例代码)
Mar 16 #Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
Mar 16 #Python
You might like
日本十大最佳动漫,全都是二次元的神级作品
2019/10/05 日漫
php生成txt文件实例代码介绍
2016/04/28 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
Prototype使用指南之range.js
2007/01/10 Javascript
Javascript 作用域使用说明
2009/08/13 Javascript
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
网站404页面3秒后跳到首页的实例代码
2013/08/16 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
再谈javascript原型继承
2014/11/10 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
jQuery Mobile中的button按钮组件基础使用教程
2016/05/23 Javascript
简单实现IONIC购物车功能
2017/01/10 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
2017/01/22 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
[01:30]DOTA2上海特锦赛现场采访 Loda倾情献唱
2016/03/25 DOTA
python处理cookie详解
2014/02/07 Python
Python检测字符串中是否包含某字符集合中的字符
2015/05/21 Python
python基于pyDes库实现des加密的方法
2017/04/29 Python
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
Python 中 sorted 如何自定义比较逻辑
2021/02/02 Python
Python操作Excel的学习笔记
2021/02/18 Python
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
linux面试题参考答案(8)
2016/04/19 面试题
介绍一下EJB的体系结构
2012/08/01 面试题
Why we need EJB
2016/10/20 面试题
《要下雨了》教学反思
2014/02/17 职场文书
内勤主管岗位职责
2014/04/03 职场文书
学生请假条
2014/04/11 职场文书
学校师德承诺书
2014/05/23 职场文书
物业管理专业求职信
2014/06/11 职场文书
河童之夏观后感
2015/06/11 职场文书
2016应届毕业生自荐信范文
2016/01/28 职场文书
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python