在Python中,有一个内置的绘图模块,就是turtle。我们可以用它来绘制一些有趣的图形。

多边形

1、三边的效果:

2、六边的效果:

是不是觉得非常挺炫酷的,但其实实现它的代码非常简单,仅仅10行Python代码就能实现。不过这都依赖于强大的turtle库。
3、多边形测试代码:

import turtle  #导入turtle库
t = turtle.Pen()  #创建turtle对象
turtle.bgcolor("black")  #设置背景颜色
sides = int(input('你需要绘制几边形:'))  #人性化输入需要绘制的边数
colors = ["red", "yellow", "green", "blue", "orange", "purple"]  #线条的颜色
for x in range(360):  #开始绘制图形,360为一个循环形成封闭t.pencolor(colors[x % sides])t.forward(x * 3 / sides + x)t.left(360 / sides + 1)t.width(x * sides / 200)

4、side+5:
代码很简单,也做了相应的注释,里面很多地方都可以根据自己的需要改动,就可能出现你意想不到的效果。边长、背景颜色和线条颜色就不说了,for循环中的算法也可以改动,比如我把side+5后:

就成了这样,是不是挺好玩的。
5、修改规则:
我再把里面的规则改成这样:

for x in range(360):t.pencolor(colors[x%sides])t.forward(x*3/sides+x)t.left(360/sides+1)t.width(x*sides/180)t.left(91)

就出现了橡皮球效果:

浩瀚星辰

还有另外一种玩法,也是类似的转圈圈绘图,这次绘制的是一幅浩瀚星辰

这就是浩瀚星辰的效果,绘制方式也很简单
1、首先导入turtle模块和random模块(一个画图模块、一个随机模块)

import turtle
import random

2、然后就是初始化一个画笔

turtle.bgcolor(0/255, 34/255, 64/255) # RGB 红绿蓝三色的值 0-1 0-255
turtle.hideturtle() # 隐藏画笔
turtle.speed(0)  #画笔运动的速度
turtle.color(1,1,1) # 白色
turtle.penup()  #抬笔
turtle.pensize(2)  #画笔的粗细

3、之后需要定义两个变量来统计半径和圆弧

radius = 5  # 半径
acc_ext = 0 # 累计圆弧

4、然后就可以无限循环来画圆了

while True:  # 无限循环# 随机圆弧# 计数看总的圆弧长度是不是超过了360度extent = random.random() * 90 #0-90的随机数color = random.choice([(1,1,1),(0/255, 34/255, 64/255)])  #白色和另外一种颜色交替turtle.color(color)turtle.circle(radius, extent)  #开始画圆acc_ext += extent  #不断延伸if acc_ext > 360:  #如果acc_ext = 0radius += 3turtle.penup()turtle.goto(0, -radius)turtle.pendown()turtle.setheading(0) # 把头摆正

这样,就实现了一个浩瀚星辰的效果,当然,里面的参数也可以根据自己的需要来改;多试试就知道它到底是有多好玩了

比如我就加了一点代码,做成了一幅星空+星辰:


可以看到,后面那一点一点的就是星空了,它们都是动态的,星空里的星星会一点一点得点上去,星辰会不断得转圈圈

5、星空+星辰测试代码

#导入模块
from turtle import *
from random import *#用turtle画星空背景
s = Screen()
s.title('星空+星辰@栀丶子')
w, h = 700, 700
s.setup(w, h)
s.bgcolor('black')
star = Turtle()
star.shape('circle')
star.shapesize(0.05,0.05)
star.color('white')
star.pu()
star.speed(6)  #为0是瞬间画好
for i in range(150):x = randint(-w/2, w/2)  #全称random.randinty = randint(-h/2, h/2)star.goto(x, y)star.stamp()  #印下去#画浩瀚星辰
cycle = Turtle()
cycle.ht()  #turtle.hideturtle()
cycle.speed(0)
cycle.color('white')
cycle.pu()
cycle.pensize(2)
radius = 5  #圈的半径
acc_ext = 0  #累计圆弧
for i in range(1000):extent = random() * 90  #0到90的随机数,每次画的圆弧长度是随机的color = choice([(1,1,1),(0/255, 0/255, 0/255)])  #白色和黑色当中随机选色cycle.color(color)cycle.circle(radius, extent)acc_ext += extent  #统计圆弧的长度if acc_ext > 360:  #若正好一圈,则半径增加3acc_ext = 0radius += 3cycle.penup()cycle.goto(0,-radius)  #每圈画笔的起点为圆心的向下一个半径位置cycle.pendown()  #pendown落笔,准备重新开始画cycle.setheading(0)  #把头摆正,方向0度为向右

Python的turtle库还能绘制这些有趣图形?相关推荐

  1. 【Python】turtle库的风轮绘制、蟒蛇绘制、八角形绘制、叠边形绘制

    目录 基本例程 总结 欢迎关注 『Python』 系列,持续更新中 欢迎关注 『Python』 系列,持续更新中 1.风轮绘制 2.蟒蛇绘制 3.八角形绘制 4.叠边形绘制 基本例程 import t ...

  2. python turtle画彩虹-Python利用turtle库绘制彩虹代码示例_天津SEO

    天津SEO RGB模型:光的三原色,共同决定色相 HSB/HSV模型:H色彩,S深浅,B饱和度,H决定色相 需要将HSB模型转换为RGB模型 代码示例: #-*- coding:utf-8 –*- f ...

  3. python画图代码彩虹-Python利用turtle库绘制彩虹代码示例

    语言:Python IDE:Python.IDE 需求 做出彩虹效果 颜色空间 RGB模型:光的三原色,共同决定色相 HSB/HSV模型:H色彩,S深浅,B饱和度,H决定色相 需要将HSB模型转换为R ...

  4. 《Turtle绘图》Python用Turtle库绘制多啦爱梦、小猪佩奇、皮卡丘等卡通人物

    声明 本文仅在CSDN发布,未经允许请勿转载或引用! 本文链接:https://blog.csdn.net/meenr/article/details/107245170 目录 利用Turtle库绘制 ...

  5. python七段数码管绘制单个数字_使用Python的turtle库实现七段数码管绘制

    七段数码管绘制: 七段数码管是由7段数码管拼接而成,每段有亮或不亮两种情况,改进的七段数码管还包括一个小数点位置. 七段数码管能形成2^7=128种状态,其中部分状态能够显示易于人们理解的数字或字母含 ...

  6. 用python绘制树和森林_使用Python的Turtle库绘制森林的实例

    这是由一个小作业引发的对Python的Turtle库的学习 下面是官方手册: 1.配置编程环境 由于现在的笔记本是临时借的,编程环境不是熟悉的环境,又由于种种原因没有安装成功Anaconda,就尝试了 ...

  7. Python用turtle库绘制图形——漂亮的玫瑰

    一.漂亮的玫瑰简笔画图片 图1的漂亮的玫瑰简笔画图片是从"百度图片"下载的一幅玫瑰图片,画得很漂亮,但只是黑白色,且没有画花萼(萼片). 图1 漂亮的玫瑰简笔画图片 二.绘制玫瑰的 ...

  8. python画笑脸-python 利用turtle库绘制笑脸和哭脸的例子

    我就废话不多说了,直接上代码吧! import turtle turtle.pensize(5) turtle.pencolor("yellow") turtle.fillcolo ...

  9. python turtle画熊-Python使用turtle库绘制小猪佩奇(实例代码)

    turtle(海龟)是Python重要的标准库之一,它能够进行基本的图形绘制.turtle图形绘制的概念诞生于1969年,成功应用于LOGO编程语言. turtle库绘制图形有一个基本框架:一个小海龟 ...

最新文章

  1. 数据库中INFORMATION_SCHEMA的说明及使用
  2. 【Paper】2020_Event-Triggered Time-Varying Formation Control for Discrete-Time Multi-Agent Systems wit
  3. ccna实验配置个人总结
  4. UOJ #310 黎明前的巧克力 (FWT)
  5. linux退出 putty_使用putty远程连接linux防止关闭putty程序就停止
  6. 使用JDBC连接SQL Server数据库
  7. 十九、面试必考,Java中的this关键字
  8. data-role参数表:
  9. WPF入门教程系列十四——依赖属性(四)
  10. java spring配置文件路径_java - 在spring b中从命令行设置活动配置文件和配置位置...
  11. Android studio无法创建类和接口问题解决办法。提示 Unable to parse template Class
  12. JS:关于JS字面量及其容易忽略的12个小问题
  13. 手机自动化测试IDE --手把手教你用Airtest模拟器来连接手机
  14. 2500亿规模,20%年增长,猎头平台化时代,谁的赢面最大? | 一点财经
  15. 员工考勤管理系统html,网页考勤系统人员排班操作说明
  16. Python人脸检测实战之疲劳检测
  17. 电脑主机组装总结——自己动手,丰衣足食
  18. 互联网信息安全与加密技术
  19. 微信内部H5页面:处理用户修改微信字体大小造成的页面溢出问题
  20. DNS与GTM协同工作原理

热门文章

  1. python为什么用class_python为什么会有@classmethod?
  2. java里的进制转换函数_基于Java中进制的转换函数详解
  3. java 多线程操作map_Java 多线程中ConcurrentHashMap并发读写操作范例
  4. python csv合并单元格_python中合并表格的两种方法
  5. java hibernate回滚_Spring Hibernate 测试事务不能回滚
  6. java md5 utf-8_Jquery与java MD5加密不同
  7. 百度app不支持popstate_这一次谷歌很强硬,从现在起你的 App 再不支持,将拒绝上架!...
  8. callback函数_Nodejs 源码解析 util.promisify 如何将 Callback 转为 Promise
  9. java过滤器解决乱码_[java]如何使用过滤器解决jsp乱码
  10. lcl手术和飞秒区别_想知道自己适合哪种近视手术?Mark!