使用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使用正则搜索字符串或文件中的浮点数代码实例
Jul 11 Python
用Python实现通过哈希算法检测图片重复的教程
Apr 02 Python
仅用50行Python代码实现一个简单的代理服务器
Apr 08 Python
Python实现将一个正整数分解质因数的方法分析
Dec 14 Python
python实现神经网络感知器算法
Dec 20 Python
python版本的仿windows计划任务工具
Apr 30 Python
对python中的乘法dot和对应分量相乘multiply详解
Nov 14 Python
Python lxml模块的基本使用方法分析
Dec 21 Python
Pytorch GPU显存充足却显示out of memory的解决方式
Jan 13 Python
python实现TCP文件传输
Mar 20 Python
教你用python控制安卓手机
May 13 Python
Python OpenCV超详细讲解基本功能
Apr 02 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
编译问题
2006/10/09 PHP
一个简单的自动发送邮件系统(三)
2006/10/09 PHP
php正则校验用户名介绍
2008/07/19 PHP
简单PHP会话(session)说明介绍
2016/08/21 PHP
javascript 流畅动画实现原理
2009/09/08 Javascript
写自已的js类库需要的核心代码
2012/07/16 Javascript
省市区三级联动下拉框菜单javascript版
2015/08/11 Javascript
js和jquery实现监听键盘事件示例代码
2020/06/24 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
2016/07/01 Javascript
AngularJS基础 ng-href 指令用法
2016/08/01 Javascript
简单谈谈React中的路由系统
2017/07/25 Javascript
jQuery选择器之表单元素选择器详解
2017/09/19 jQuery
React生命周期原理与用法踩坑笔记
2020/04/28 Javascript
微信小程序实现弹幕墙(祝福墙)
2020/11/18 Javascript
Vue实现简单计算器
2021/01/20 Vue.js
python类型强制转换long to int的代码
2013/02/10 Python
简单的Python抓taobao图片爬虫
2014/10/26 Python
python动态网页批量爬取
2016/02/14 Python
Python中防止sql注入的方法详解
2017/02/25 Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
2018/08/05 Python
python 顺时针打印矩阵的超简洁代码
2018/11/14 Python
提升Python程序性能的7个习惯
2019/04/14 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
Python datetime模块使用方法小结
2020/06/18 Python
Python读取xlsx数据生成图标代码实例
2020/08/12 Python
加拿大票务网站:Ticketmaster加拿大
2017/07/17 全球购物
网络工程师面试(三木通信技术有限公司)
2013/06/05 面试题
Python是如何进行类型转换的
2013/06/09 面试题
晚归检讨书
2014/02/19 职场文书
2014植树节活动总结
2014/03/11 职场文书
党的群众路线教育实践活动个人整改方案
2014/10/25 职场文书
2014年小学教研工作总结
2014/12/06 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
学校节水倡议书
2015/04/29 职场文书
《我要的是葫芦》教学反思
2016/02/18 职场文书
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python