turtle制作简单动画和总结

最后制作的效果图

制作的代码,写的比较乱,后面还有皮卡丘动画,有需要可以私我。

def tree(n,l):pd()#下笔#阴影效果t = cos(radians(heading()+45))/8+0.25pencolor(t,t,t)pensize(n/2)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.5begin_fill()pencolor(n, n * 0.8, n * 0.8)color(n, n * 0.8, n * 0.8)circle(4)end_fill()left(90)#添加0.3倍的飘落叶子if(random()>0.7):pu()#飘落t = heading()an = 240+random()*40setheading(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.5pencolor(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)#退回
def petal(m):  # 树下花瓣for i in range(m):n = cos(radians(heading() - 45)) / 4 + 0.5a = 600- 1200 * random()b = 30 - 60 * random()up()forward(b)left(90)forward(a)down()# 淡珊瑚色color(n, n * 0.8, n * 0.8)circle(2)up()backward(a)right(90)backward(b)
def getPosition(x, y):t.setx(x)t.sety(y)print(x, y)if __name__ == '__main__':bgcolor(0.5, 0.5, 0.5)  # 背景色screensize(850, 800)t.setup(850, 800)ht()  # 隐藏turtlespeed(0)  # 速度 1-10渐进,0 最快tracer(1, 0)pu()  # 抬笔backward(100)left(90)  # 左转90度pu()  # 抬笔getPosition(0, -300)tree(12, 100)  # 递归7层petal(1000)width, height = 800, 600#转换背景t.bgcolor("black")t.delay(0)  # 这里要设为0,否则很卡t = Turtle(visible=False, shape='circle')print('画背景')t.pencolor("white")t.fillcolor("white")t.penup()t.setheading(-90)t.goto(width / 2, randint(-height / 2, height / 2))stars = []for i in range(200):star = t.clone()s = random() / 3star.shapesize(s, s)star.speed(int(s * 10))star.sety(width / 2 + randint(1, width))star.setx(randint(-height / 2, height / 2))star.showturtle()stars.append(star)for i in range(1, 100):for star in stars:star.sety(star.ycor() - 3 * star.speed())if star.xcor() < -width / 2:star.hideturtle()star.sety(width / 2 + randint(1, width))star.setx(randint(-height / 2, height / 2))star.showturtle()clearscreen()

总结

1.可修复性
编程所得的画面,所有的图案都是可修改可拷贝的,且不会有任何影响。而手绘的画作,一旦落笔,可修复性就很差了,不免会出现“一个墨点毁了一幅画”的情况。
2.顺序性
码绘可以选择先绘制任何图形,再通过移动代码的位置改变它们的遮挡关系。而在手绘的过程中,不得不先总体确定有哪些图案先绘制,或需要保留完整性,以及剩余图案的分布和位置。
3.素材选择性
以颜色为例,RGB的三个数值,囊括了所有可视颜色。而在手绘的颜色工具相比之下则少得多。
4.重复性
对于有规律可循的图形,编程绘画便很有优势,恰当地使用循环、嵌套等语句,简单的一些函数便可以减少很多工作量。相比而言手绘则更加按部就班,且绘制重复图案时不可避免会有微小的差异。

turtle库制作简单动画和总结相关推荐

  1. python程序设计基础之turtle库制作简单的小图片

    (turtle基础)一条小蛇 #我做了一条简单的小蟒蛇 from turtle import * setup(650,350,200,200) pu() fd(-250) pd() pensize(2 ...

  2. python的turtle怎么画曲线_利用 turtle库绘制简单图形

    turtle库是python的基础绘图库,这个库被介绍为一个最常用的用来介绍编程知识的方法库,其主要是用于程序设计入门,是标准库之一,利用turtle可以制作很多复杂的绘图. turtle名称含义为& ...

  3. python中的turtle如何运行_python中turtle库的简单使用教程

    python的turtle库的简单使用 Python的turtle库是一个直观有趣的图形绘制函数库,是python的标准库之一. 一.绘图坐标体系 turtle库绘制图形的基本框架:通过一个小海龟在坐 ...

  4. Python之Turtle库绘制简单图形

    Python之Turtle库绘制简单图形 来绘制正方形.三角形.五边形.五角形 import turtle #引入turtle库pen=turtle.Turtle() #创建turtle类型的画笔 # ...

  5. python的turtle库的简单使用

    python的turtle库的简单使用 Python的turtle库是一个直观有趣的图形绘制函数库,是python的标准库之一. 一.绘图坐标体系 turtle库绘制图形的基本框架:通过一个小海龟在坐 ...

  6. 用turtle库制作一个简单的小游戏《鸡子大战篮球》

    刚上大学,学习python不到两月半,连简单的字典.元组数据类型都还没有捂熟.这不刚好python小组作业是用turtle库画自己喜欢的图案吗,在我们小组的努力下我们画好了5只小只因,于是我就大胆的进 ...

  7. python制作简单动画_把数据摇起来!用Python制作动画可视化效果!

    Python 中有很多不错的数据可视化库,但是极少能渲染 GIF 图或视频动画效果.本文就分享一下如何用 MoviePy 作为其他可视化库的通用插件,制作动画可视化效果,毕竟这年头,没图不行,有动图更 ...

  8. 使用Python中的Turtle库绘制简单的图形

    Turtle图形库 Turtle库是Python内置的图形化模块,属于标准库之一,位于Python安装目录的lib文件夹下,常用函数有以下几种: 画笔控制函数 penup():抬起画笔: pendow ...

  9. 怎么用python画简单的图-使用Python中的Turtle库绘制简单的图形

    Turtle图形库 Turtle库是Python内置的图形化模块,属于标准库之一,位于Python安装目录的lib文件夹下,常用函数有以下几种: 画笔控制函数 penup():抬起画笔: pendow ...

最新文章

  1. R包ComplexHeatmap绘制个性化热图
  2. RAID类型及软RAID的组建
  3. 字节流代码 java_java代码字符字节流
  4. Mac OS 查看端口和杀死进程
  5. 内核空间镜像攻击揭秘:ARM 硬件特性,竟能开启安卓8终端的上帝模式?
  6. LinkedIn的使用开源项目
  7. 在mysql中REGEXP_在MySQL中使用RegExp中的列
  8. BZOJ2325[ZJOI2011]道馆之战——树链剖分+线段树
  9. Altium差分布线和等长方法
  10. linux锐捷代码_锐捷认证 For Linux
  11. {黑掉这个盒子} \\ FluxCapacitor Write-Up
  12. 16.Linux环境搭建虚拟网络
  13. 使用EditPlus替换文件中的某一字符为换行符
  14. Java stream().sorted()实现排序(升序、降序、多字段排序)
  15. win11系统苹果电脑如何安装 Windows11绕过tpm限制在苹果电脑进行安装的步骤方法
  16. 12306网络订票系统登录提示解决方案
  17. LCT学习笔记/基本思路
  18. 【web渗透思路】框架敏感信息泄露(特点、目录、配置)
  19. 大数据时代如何使用数据分析来找女朋友?
  20. npm install下载依赖项时报错 fatal: unable to access ‘https://github.com/nhn/raphael.git/‘: Failed to connect

热门文章

  1. 为什么win32k.sys在System进程空间无法访问
  2. CAD下载的流程,具体步骤是什么样的呢?
  3. 2021年R2移动式压力容器充装证考试及R2移动式压力容器充装实操考试视频
  4. Deflate算法解压器实现图解
  5. 微服务容器部署与持续集成(Jenkins)
  6. java用数组显示周期性波形,电压uI的周期性波形如图所示,则灯L的情况为
  7. Storm基础(完整版)
  8. java面试官常问的问题
  9. 基于深度学习的人脸性别识别系统(含UI界面,Python代码)
  10. JavaScript 无缝连接滚动特效