Python的turtle库还能绘制这些有趣图形?

2023-05-16

在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后:
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 = 0
        radius += 3
        turtle.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.randint
    y = 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:  #若正好一圈,则半径增加3
        acc_ext = 0
        radius += 3
        cycle.penup()
        cycle.goto(0,-radius)  #每圈画笔的起点为圆心的向下一个半径位置
        cycle.pendown()  #pendown落笔,准备重新开始画
        cycle.setheading(0)  #把头摆正,方向0度为向右
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 最新Anaconda3的安装配置及使用教程

    安装记录参考链接 出现问题 xff1a 镜像地址无效 不知道 设置Anaconda镜像 那一步我哪里没有操作好 答 步骤错了 正确步骤 xff1a 1 先执行 conda config set show channel urls yes 生
  • Linux 环境变量:DISPLAY

    1 dbvis no x11 display variable was set but this program performed an operation which requires it solution export DISPLA
  • PostgreSQL入门-安装与基本使用(Ubuntu)

    PostgreSQL入门 安装与基本使用 xff08 Ubuntu xff09 PostgreSQL 是一个免费的对象 关系数据库服务器 ORDBMS xff0c 号称是 世界上最先进的开源关系型数据库 PostgreSQL 是以加州大学计
  • windows下的pycharm项目部署同步到Linux下的pycharm开发

    windows下的pycharm项目部署同步到Linux下的pycharm开发 一 运行平台二 SSH连接远程服务器 一 运行平台 项目部署系统 xff1a UOS 项目开发平台 xff1a windows10 IDE xff1a PyCh
  • redhat操作系统升级红帽6升级到红帽7linux升级

    本文档介绍了从 RHEL 6 到 RHEL 7 就地升级的步骤 支持的就地升级路径是从 RHEL 6 10 到 RHEL 7 9 如果您的 RHEL 系统满足以下条件 xff0c 则完全支持此 RHEL 6 到 RHEL 7 升级过程 xf
  • Kubernetes角色访问控制RBAC和权限规则(Role+ClusterRole)---好文

    基于角色的访问控制 xff08 Role Based Access Control 即 RBAC xff09 使用 rbac authorization k8s io API Group实现授权决策 xff0c 允许管理员通过Kuberne
  • 你知道abrt-hook-ccpp吗

    1 什么是abrt hook ccpp abrt也可以叫abrtd xff0c 展开应该是automatically bug report daemon xff0c 也就是自动错误报告守护进程 从字面意义就可以看出 xff0c 他是一个守护
  • Mobaxterm 使用图形界面

    redhat 7 yum install firefox xorg x11 xauth mesa libGLES devel x86 64 mesa dri drivers vi etc ssh sshd config X11Forward
  • Linux ❉ Chronyd时间同步服务器详解

    一 介绍 1 简介 集群中节点之间需要时间同步 xff0c Chronyd不依赖外部的时间服务NTP xff0c 在内部搭建时间服务器 Chrony是网络时间协议 xff08 NTP xff09 的一种实现 xff0c 是一个类Unix系统
  • Linux时间延迟平滑对时方案的分析-Ntp和Chrony的不同表现

    系列文章目录 文章目录 系列文章目录前言一 环境信息二 ntpd模式 2 1 版本信息2 2 配置ntpd对时源 2 2 1 配置ntpd服务配置 xff0c 启动ntpd服务2 3 2 查看对时情况2 3 配置ntpd客户端 2 3 1
  • keepalive实现MGR的自动切换(二)

    10 0 0 7 lemon 10 0 0 8 lemon2 10 0 0 9 lemon3 程序代码里只需写一个VIP连接数据库即可 xff0c 后面是连接在哪一台通过 xff0c keepalived的在服务端实现 xff1b 通过检测
  • mysql MGR配置keepalived

    之前写过一篇mysql8 0搭建MGR 在这里 mysql8 0配置MGR 悠游 博客园 cnblogs com 在此基础上配置keepalived 一 安装keepalived 可能会少些包 xff0c 所以配置了网络yum源 所有节点均
  • UltraVNC 使用方法详细说明

    每次修改uvnc settings exe后 xff0c 都要重启Winvnc或者VNC server的进程 配置 否则会如下图 结束Winvnc进程 重新打开winvnc exe 直接点OK 打开UVNC Launch exe 右键SER
  • Linux(Ubuntu)下升级Nginx服务器软件至nginx-1.17.6

    Linux下升级Nginx服务器软件nginx 1 17 6 Nginx 音engine X 是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器 也是一个 IMAP POP3 SMTP 代理服务器
  • 通过SnmpWalk获取服务器状态信息

    简单网络管理协议SNMP xff08 Simple Network Management Protocol xff09 是网络监控和网络设备管理的统一 协议 xff0c 并被所有主流的操作系统和大量网络应用程序所支持 SNMP广泛用于管理和
  • 聊聊几款文件同步备份工具,你更喜欢哪一款呢?

    文件备份对企业的价值 对于绝大多数人而言 xff0c 电脑中的不少文件对于我们来说都非常重要 xff0c 一旦丢失 xff0c 损失将会难以估量 随着网络威胁的不断发展和变得越来越复杂 xff0c 文件传输和托管文件传输之间的区别对于企业来
  • 5分钟学会本地Pypi源搭建

    前言 通常我们在下载 python 包时都会选择清华源或者阿里源 但是当我们的开发环境无法访问外网的时候 xff0c 就需要搭建私有源 今天我们就一起花 5 分钟时间学习如何搭建一个本地私有源 工具选择 搭建本地私有源有很多种方案 xff0
  • Linux基础第十一章:日志文件及如何使用rsyslog搭建小型日志服务器

    一 日志文件 1 日志作用 将系统和应用发生的事件记录至日志中 xff0c 以助于排错和分析使用 记录的内容包括 xff1a 时间 xff0c 地点 xff0c 人物 xff0c 事件 2 常用日志 日志文件位置日志文件说明 var log
  • Linux parted 分区命令详解

    一 概述 通常我们用的比较多的分区工具是fdisk命令 xff0c 但由于fdisk只支持MBR分区 xff0c MBR分区表最大支撑2T的磁盘 xff0c 所以无法划分大于2T的分区 而parted工具可以划分单个分区大于2T的GPT格式
  • 配置docker pull代理

    Dockerd 代理 在执行docker pull时 xff0c 是由守护进程dockerd来执行 因此 xff0c 代理需要配在dockerd的环境中 而这个环境 xff0c 则是受systemd所管控 xff0c 因此实际是system

随机推荐