使用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 (1)
Oct 31 Python
详解Python发送邮件实例
Jan 10 Python
利用python3随机生成中文字符的实现方法
Nov 24 Python
Python实现破解12306图片验证码的方法分析
Dec 29 Python
python 多线程重启方法
Feb 18 Python
python3实现mysql导出excel的方法
Jul 31 Python
Django如何实现网站注册用户邮箱验证功能
Aug 14 Python
Python脚本实现监听服务器的思路代码详解
May 28 Python
python爬虫请求头设置代码
Jul 28 Python
Python3使用 GitLab API 进行批量合并分支
Oct 15 Python
python 网络编程要点总结
Jun 18 Python
python疲劳驾驶困倦低头检测功能的实现
Apr 04 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
php 验证码实例代码
2010/06/01 PHP
一些需要禁用的PHP危险函数(disable_functions)
2012/02/23 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
2014/08/20 PHP
PDO预处理语句PDOStatement对象使用总结
2014/11/20 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
2016/03/25 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
php从身份证获取性别和出生年月
2017/02/09 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
2017/09/29 PHP
PHP生成指定范围内的N个不重复的随机数
2019/03/18 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
完整显示当前日期和时间的JS代码
2007/09/17 Javascript
Javascript 获取LI里的内容
2008/12/17 Javascript
JQuery 应用 JQuery.groupTable.js
2010/12/15 Javascript
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
JS中如何实现复选框全选功能
2016/12/19 Javascript
JavaScript框架Angular和React深度对比
2017/11/20 Javascript
Vue源码解析之Template转化为AST的实现方法
2018/12/14 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
[50:58]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 Mineski vs EG
2018/04/03 DOTA
Python编程实现蚁群算法详解
2017/11/13 Python
Python(PyS60)实现简单语音整点报时
2019/11/18 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
2021/02/26 Python
详解canvas.toDataURL()报错的解决方案全都在这了
2020/03/31 HTML / CSS
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
Club Monaco加拿大官网:设计师男女服装
2019/09/29 全球购物
世界上最大的铁人三项商店:Tri UK
2020/11/04 全球购物
《花木兰》教学反思
2014/04/09 职场文书
学校运动会霸气口号
2014/06/07 职场文书
2014年后勤管理工作总结
2014/12/01 职场文书
2015年少先队活动总结
2015/03/25 职场文书
生日祝酒词大全
2015/08/10 职场文书
使用GO语言实现Mysql数据库CURD的简单示例
2021/08/07 Golang