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

作者:Soul fragments 时间:2022-07-11 05:28:15 

今天为大家介绍几个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库的使用方法请查看下面的相关链接

来源:https://blog.csdn.net/weixin_43943977/article/details/102691392

标签:python,turtle
0
投稿

猜你喜欢

  • Matplotlib 生成不同大小的subplots实例

    2022-12-22 03:16:26
  • 解决pycharm不能自动补全第三方库的函数和属性问题

    2023-10-10 09:46:16
  • MySql数据库时间序列间隔查询方式

    2024-01-27 15:23:03
  • Python while true实现爬虫定时任务

    2021-02-10 13:35:30
  • Python Django框架单元测试之文件上传测试示例

    2022-02-26 23:50:51
  • python解析多层json操作示例

    2021-06-17 22:59:41
  • 怎样管理好css样式

    2008-10-12 12:12:00
  • python3.10及以上版本编译安装ssl模块的详细过程

    2022-05-05 07:26:28
  • 超详细Python解释器新手安装教程

    2021-08-14 07:10:01
  • Node.js readline模块与util模块的使用

    2024-05-11 10:13:00
  • Python免费试用最新Openai API的步骤

    2022-04-08 09:03:03
  • pycharm 实现本地写代码,服务器运行的操作

    2023-04-10 21:12:44
  • MyBatis实现MySQL批量插入的示例代码

    2024-01-14 01:48:23
  • PHP格式化显示时间date()函数案例讲解

    2023-06-13 06:45:34
  • MySQL如何实现两张表取差集

    2024-01-18 21:00:03
  • Python Pyperclip模块安装和使用详解

    2023-06-25 13:52:11
  • Python Serial串口基本操作(收发数据)

    2022-04-17 09:54:07
  • Python实现感知器模型、两层神经网络

    2021-11-14 07:34:19
  • JavaScript中利用构造器函数模拟类的方法

    2023-07-02 05:30:13
  • django如何实现视图重定向

    2022-05-28 12:22:13
  • asp之家 网络编程 m.aspxhome.com