当前位置: 首页 > news >正文

python之海龟绘图

海龟绘图(turtle)是一个Python内置的绘图库,也被称为“Turtle Graphics”或简称“Turtles”。它采用了一种有趣的绘图方式,模拟一只小海龟在屏幕上爬行,而小海龟爬行的路径就形成了绘制的图形。这种绘图方式最初源自20世纪60年代的Logo编程语言,后来一些Python程序员构建了turtle库,使得其他程序员可以通过简单的import turtle命令,在Python中使用海龟作图。

今天就来简单举几个例子!

一,小猪佩奇

from turtle import *def nose(x, y):  # 鼻子penup()  # 提起笔goto(x, y)  # 定位pendown()  # 落笔,开始画setheading(-30)  # 将乌龟的方向设置为to_angle/为数字(0-东、90-北、180-西、270-南)begin_fill()  # 准备开始填充图形a = 0.4for i in range(120):if 0 <= i < 30 or 60 <= i < 90:a = a + 0.08left(3)  # 向左转3度forward(a)  # 向前走a的步长else:a = a - 0.08left(3)forward(a)end_fill()  # 填充完成penup()setheading(90)forward(25)setheading(0)forward(10)pendown()pencolor(255, 155, 192)  # 画笔颜色setheading(10)begin_fill()circle(5)color(160, 82, 45)  # 返回或设置pencolor和fillcolorend_fill()penup()setheading(0)forward(20)pendown()pencolor(255, 155, 192)setheading(10)begin_fill()circle(5)color(160, 82, 45)end_fill()def head(x, y):  # 头color((255, 155, 192), "pink")penup()goto(x, y)setheading(0)pendown()begin_fill()setheading(180)circle(300, -30)circle(100, -60)circle(80, -100)circle(150, -20)circle(60, -95)setheading(161)circle(-300, 15)penup()goto(-100, 100)pendown()setheading(-30)a = 0.4for i in range(60):if 0 <= i < 30 or 60 <= i < 90:a = a + 0.08lt(3)  # 向左转3度fd(a)  # 向前走a的步长else:a = a - 0.08lt(3)fd(a)end_fill()def cheek(x, y):  # 腮color((255, 155, 192))penup()goto(x, y)pendown()setheading(0)begin_fill()circle(30)end_fill()def mouth(x, y):  # 嘴color(239, 69, 19)penup()goto(x, y)pendown()setheading(-80)circle(30, 40)circle(40, 80)def setting():  # 参数设置pensize(4)hideturtle()  # 使乌龟无形(隐藏)colormode(255)  # 将其设置为1.0或255.随后 颜色三元组的r,g,b值必须在0 .. cmode范围内color((255, 155, 192), "pink")setup(840, 500)speed(100)def ears(x, y):color((255, 155, 192), "pink")penup()goto(x, y)pendown()begin_fill()setheading(100)circle(-50, 50)circle(-10, 120)circle(-50, 54)end_fill()penup()setheading(90)forward(-12)setheading(0)forward(30)pendown()begin_fill()setheading(100)circle(-50, 50)circle(-10, 120)circle(-50, 56)end_fill()def eyes(x, y):color((255, 155, 192), "pink")fillcolor('white')penup()goto(x, y)pendown()begin_fill()setheading(0)circle(20)end_fill()color((255, 155, 192))fillcolor('white')penup()goto(x, y)begin_fill()forward(80)pendown()setheading(100)circle(20)end_fill()color('black')penup()goto(x-7, y+13)pendown()begin_fill()setheading(0)circle(5)end_fill()penup()goto(x, y)begin_fill()forward(60)pendown()setheading(100)circle(5)end_fill()def body(x, y):width(5)color('firebrick')list = ['orangered', 'firebrick']up()goto(x, y)down()setheading(-105)begin_fill()fillcolor(list[0])circle(250, 30)setheading(0)forward(138)setheading(75)circle(250, 30)end_fill()setheading(-45)forward(70)begin_fill()fillcolor(list[1])circle(5)end_fill()up()goto(x, y)down()setheading(-145)forward(70)begin_fill()circle(5)end_fill()up()goto(x+20, y-250/2-4)down()setheading(270)forward(50)left(90)width(10)color('black')forward(13)width(5)color('firebrick')up()goto(x + 120, y - 250 / 2-4)down()setheading(270)forward(50)left(90)width(10)color('black')forward(13)def main():body(-25, -15)setting()  # 画布、画笔设置nose(-100, 100)  # 鼻子head(-69, 167)  # 头ears(0, 160)  # 耳朵eyes(-15, 100)  # 眼睛cheek(80, 10)  # 腮mouth(-20, 30)  # 嘴done()if __name__ == '__main__':main()

运行结果:

二,哆啦A梦

import turtle as tt2=t.Turtle()def funa(x,y):t.pu()t.goto(x,y)t.dot(10,'red')t2.clear()t2.write('{},{}'.format(x,y),align='center',font=('黑体',20,'bold'))def huxian(x,y,r,a):t.pu()t.goto(x,y)t.pd()t.circle(r,a)def line2(x1,y1,x2,y2,c='black',size=1):t.color(c)t.pensize(size)t.pu()t.goto(x1,y1)t.pd()t.goto(x2,y2)def sanjiao(x,y,m,c,fc='black'):t.color(fc,c)t.pu()t.goto(x,y)t.pd()t.seth(90)t.begin_fill()t.circle(m,180)t.end_fill()def tuoyuan(x,y,st,s,c,b,ps=1,ang=0):t.pensize(ps)t.pu()t.goto(x,y)t.pd()t.seth(ang)a=stt.color(c,b)t.begin_fill()for i in range(120):if 0<=i<30 or 60<=i<90:a+=0.01*st.lt(3)t.fd(a)else:a-=0.01*st.lt(3)t.fd(a)t.end_fill()def head():tuoyuan(0,-44,7.0,0.0,'black','#00A0DE')tuoyuan(0,-49,6.0,0.03,'black','white')def eyes():tuoyuan(-25,133,1.0,4.0,'black','white')tuoyuan(32,133,1.0,4.0,'black','white')tuoyuan(-15,161,0.0,2,'black','black',1)          tuoyuan(23,161,0.0,2,'black','black',1)tuoyuan(-15,161,0.0,1,'black','white',1)    tuoyuan(23,161,0.0,1,'black','white',1)    def huzi():tuoyuan(-77,118,0.7,0,'#FFC5C8','#FFC5C8')tuoyuan(75,113,0.7,0,'#FFC5C8','#FFC5C8')    line2(-53,118,-136,149)line2(-50,95,-146,95)line2(-51,78,-139,52)line2(54,118,135,145)line2(55,95,150,95)line2(52,79,141,53)  def nose():tuoyuan(4,100,1,0.1,'black','#DB3A49')#line2(4,101,4,43)t.color('black')t.pu()t.goto(4,101)t.seth(-80)t.pd()t.circle(-300,12)tuoyuan(15,117,0.0,1.0,'white','white',1)  def setting():t.delay(0)  t.ht()#t.bgpic('./DLAM.gif')t.pensize(2)t.color('blue')t.bgcolor('white')t2.ht()t2.pu()t2.goto(0,-280)def mouth():t.pu()t.goto(-73,59)t.seth(-24)t.pd()t.color('black','#E92A14')t.begin_fill()t.circle(200,45)t.seth(-98)   t.circle(-77,165)t.end_fill()t.pu()t.goto(-32,2)t.seth(24)t.pd()t.color('black','#E74810')t.begin_fill()t.circle(-150,35)t.seth(-130)   t.circle(-70,90)t.end_fill()def xianglian():t.pu()t.goto(-66,-30)t.pd()t.color('black','#F53338')t.begin_fill()t.seth(-15)t.circle(260,26)t.seth(-80)t.fd(10)t.seth(-167)t.circle(-240,30)  t.seth(80) t.fd(12)t.end_fill()def lingdang():tuoyuan(-10,-80,1.0,0.1,'black','#FFD957',1)line2(-30,-60,10,-60,c='#E89F10',size=3)          line2(-10,-70,-10,-80,c='black') t.pu()t.goto(-10,-70)t.pd()t.color('black')t.begin_fill()t.seth(0)t.circle(2.5)t.end_fill()  t.pu()t.goto(-3,-50)  t.pd()t.pensize(3)t.color('white')t.seth(-50)t.circle(-100,2)def dupi():t.pu()t.goto(-50,-40)t.pd()t.color('black','white')t.begin_fill()t.seth(-140)t.circle(60,280)t.end_fill()t.pu()t.goto(-40,-90)t.pd()t.color('black','white')t.begin_fill()t.seth(0)t.fd(60)t.seth(-90)t.circle(-30,180)t.end_fill()  def body():t.color('black','#00A0DE')t.pu()t.goto(-73,-40)t.pd()t.begin_fill()t.seth(-140)t.circle(360,15)t.seth(-40)  t.fd(40) t.pu()t.goto(-89,-84)t.pd()t.seth(-90)t.circle(360,15)t.pu()t.goto(53,-176)t.pd()t.seth(80)t.circle(360,15)t.pu()t.goto(76,-134)t.pd()t.seth(40)  t.fd(40) t.seth(120)t.circle(330,15)t.end_fill()sanjiao(2,-178,10,'white')def feet():t.pu()t.goto(-113,-135)t.pd()t.color('black','white')t.begin_fill()t.seth(0)t.circle(23)t.end_fill()    t.pu()t.goto(85,-135)t.pd()t.color('black','white')t.begin_fill()t.seth(0)t.circle(23)t.end_fill()tuoyuan(-13,-192,1.0,5.0,'black','white',ang=90)tuoyuan(63,-192,1.0,5.0,'black','white',ang=90)def cat_name():t.pu()t.goto(80,-50)t.color('#0180DD')t.write('ドラえもん',font=('宋体',24,'normal'))   t.goto(120,-22)t.color('#dddddd')t.write('Doraemon',font=('宋体',20,'italic'))setting()head()eyes()
nose()
mouth()
huzi()
body()
dupi()
xianglian()
feet()
lingdang()cat_name()t.done()

相关文章:

python之海龟绘图

海龟绘图&#xff08;turtle&#xff09;是一个Python内置的绘图库&#xff0c;也被称为“Turtle Graphics”或简称“Turtles”。它采用了一种有趣的绘图方式&#xff0c;模拟一只小海龟在屏幕上爬行&#xff0c;而小海龟爬行的路径就形成了绘制的图形。这种绘图方式最初源自20…...

Java实战:Spring Boot 实现异步记录复杂日志

日志记录是软件开发中非常重要的一环&#xff0c;它可以帮助我们快速定位问题、监控程序运行状态等。在 Spring Boot 应用中&#xff0c;异步记录日志是一种常见的需求。本文将详细介绍如何在 Spring Boot 中实现异步记录复杂日志&#xff0c;包括异步日志的基本原理、实现方式…...

“色狼”用英语怎么说?柯桥日常英语,成人英语口语学习

最近有粉丝问我"色狼"英文翻译是啥 首先声明不是"colour wolf"哈 关于“色狼”的英文表达有很多 快和C姐一起来看看吧&#xff01; 1.pervert 这个单词的意思是变态、色狼 是对性变态者最直观的描述 He is such a pervert&#xff01; I saw him lo…...

Docker前后端项目部署

目录 一、搭建项目部署的局域网 二、redis安装 三、MySQL安装 四、若依后端项目搭建 4.1 使用Dockerfile自定义镜像 五、若依前端项目搭建 一、介绍前后端项目 一张图带你看懂ruoyi的前后端项目部署 得出结论&#xff1a;需要4台服务器&#xff0c;都处于同一个局域网中…...

如何快速的搭建一个小程序

要快速搭建一个小程序&#xff0c;你可以按照以下步骤进行&#xff1a; 明确目标和需求&#xff1a;在开始搭建小程序之前&#xff0c;首先明确你的小程序的主要功能、目标用户以及希望实现的业务需求。这将帮助你更好地规划和设计小程序。选择小程序平台&#xff1a;根据你的…...

STM32自学☞AD多通道

涉及到的硬件有&#xff1a;光敏传感器&#xff0c;热敏传感器&#xff0c;红外对射传感器&#xff0c;电位器 通过adc将他们采集的模拟信号转换为数值 ad.c文件 #include "stm32f10x.h" #include "stm32f10x_adc.h" #include "ad.h" #inc…...

微服务之商城系统

一、商城系统建立之前的一些配置 1、nacos Nacos是一个功能丰富的开源平台&#xff0c;用于配置管理、服务发现和注册、健康检查等&#xff0c;帮助构建和管理分布式系统。 在linux上安装nacos容器的命令&#xff1a; docker run --name nacos-standalone -e MODEstandalone …...

安卓玩机工具推荐----高通芯片9008端口读写分区 备份分区 恢复分区 制作线刷包 工具操作解析

上期解析了下adb端口备份分区的有关操作 安卓玩机工具推荐----ADB状态读写分区 备份分区 恢复分区 查看分区号 工具操作解析 在以往的博文中对于高通芯片机型的分区读写已经分享了很多。相关类似博文 安卓备份分区----手动查询安卓系统分区信息 导出系统分区的一些基本操作 …...

全量知识系统问题及SmartChat给出的答复 之16 币圈生态链和行为模式

Q.42 币圈生态链和行为模式 我认为&#xff0c;上面和“币”有关的一系列概念和技术&#xff0c;按设计模式的划分 &#xff0c;整体应该都属于行为模式&#xff0c;而且应该囊括行为模式的所有各个方面。 而行为又可以按照三种不同的导向&#xff08;以目的或用途为导向、过…...

【MOMO_Tips】批量将word转换为PDF格式

批量将word转换为PDF格式 1.打开文件–>选项–>自定义功能区–>开发工具–>确定 2.点开开发工具&#xff0c;选择第一个visual basic 3.进入页面后找到插入–>模块&#xff0c;就可以看到这样的画面之后将下列vba代码复制粘贴到模块中 Sub ConvertWordsToPd…...

【JSON2WEB】08 Amis的事件和校验

【JSON2WEB】01 WEB管理信息系统架构设计 【JSON2WEB】02 JSON2WEB初步UI设计 【JSON2WEB】03 go的模板包html/template的使用 【JSON2WEB】04 amis低代码前端框架介绍 【JSON2WEB】05 前端开发三件套 HTML CSS JavaScript 速成 【JSON2WEB】06 JSON2WEB前端框架搭建 【J…...

抖店类目报白什么意思?什么类目需要报白?这次给你讲明白!

我是电商珠珠 不少新手在选择类目的时候&#xff0c;有些类目却无法选择&#xff0c;系统显示需要报白才可以。那什么是报白&#xff1f;怎么报白&#xff1f;今天我就一次性给你们讲清楚。 抖店类目报白什么意思&#xff1f; 根据官方的说法&#xff0c;报白就是针对一些比…...

<C++>【继承篇】

​ ✨前言✨ &#x1f393;作者&#xff1a;【 教主 】 &#x1f4dc;文章推荐&#xff1a; ☕博主水平有限&#xff0c;如有错误&#xff0c;恳请斧正。 &#x1f4cc;机会总是留给有准备的人&#xff0c;越努力&#xff0c;越幸运&#xff01; &#x1f4a6;导航助手&#x1…...

size_t 和double相乘怎么转换size_t

在C中&#xff0c;size_t和double可以直接相乘&#xff0c;结果会自动转换为double类型。如果你想要得到的结果是size_t类型&#xff0c;你需要进行显式类型转换。但是要注意&#xff0c;double转size_t可能会丢失小数部分&#xff0c;只保留整数部分。 以下是一个例子&#x…...

C# 的一些好用的语法糖介绍

C# 中有很多语法糖&#xff08;Syntactic sugar&#xff09;&#xff0c;它们是一些语言特性&#xff0c;使得编写代码更加简洁、易读、更具表现力。 Lambda 表达式&#xff1a; Lambda 表达式允许你编写简洁的匿名函数。例如&#xff1a; Func<int, int, int> add (a…...

驱动开发面试复习

创建字符设备 1 创建设备号 alloc_chrdev_region 2.创建cdev cdev_init 3.添加一个 cdev,完成字符设备注册到内核 cdev_add 4.创建类 class_create 5.创建设备 device_create 1.内核空间与用户空间数据 copy_from_user 和copy_to_user 俩个函数来完成。 copy_from_user 函数…...

监测数据计算与换算:确保工程安全的关键步骤

在工程项目中&#xff0c;监测数据的计算与换算是一项至关重要的工作&#xff0c;它直接关系到工程的安全与稳定。本文将从确定基准值、数据计算与换算、异常值处理以及数据存储等方面&#xff0c;探讨监测数据计算与换算的主要工作内容。 添加图片注释&#xff0c;不超过 140 …...

Vue项目实战--空间论坛(1)

环境准备 安装好node.js,Vue后 添加插件 router---路由&#xff0c;多页面的应用 vuex---在多个组件之间维护同一个数据 添加依赖 bootstrap---美工 popperjs/core vue项目介绍 views-----对应vue文件&#xff0c;页面 router-----路由&#xff0c;页面&#xff0c;c…...

linux内核驱动——字符设备实现两个终端单向收发

linux内核驱动——字符设备实现两个终端单向收发 参考 Ubuntu18.04添加内核模块&#xff08;字符设备&#xff09; 创建内核驱动文件chat_dev.c&#xff1a; #include <linux/init.h> //定义了module_init #include <linux/module.h> //最基本的头文件&a…...

读取CSV数据并写入MySQL

import pandas as pd #import tushare as ts from sqlalchemy import create_engineimport baostock as bs #### 登陆系统 #### lg bs.login() # 显示登陆返回信息 print(login respond error_code:lg.error_code) print(login respond error_msg:lg.error_msg) #### 获取沪深…...

centos7.4下升级最新的ssh

一 安装telnet服务器 安装telnet服务器目的&#xff0c;防止我们升级失败的时候&#xff0c;可以通过telnet登录&#xff0c;而不至于上机房。 由于我们是临时启动&#xff0c;所以只要简单的使用&#xff0c;不要通过xinetd来进行守护。 命令如下&#xff1a; yum -y install …...

Java实现的双向链表示例

双向链表&#xff08;Doubly Linked List&#xff09;是一种链式数据结构&#xff0c;每个节点都包含两个指针&#xff0c;一个指向前一个节点&#xff0c;一个指向后一个节点。双向链表与单向链表相比&#xff0c;除了有前向指针外&#xff0c;还有一个额外的后向指针&#xf…...

生物电信号测量技术

引言 生物电信号是生物体内的电活动产生的电流或电压信号&#xff0c;它反映了生物体的生理状态和活动。生物电信号测量技术是一种用于记录和分析这些信号的方法&#xff0c;广泛应用于医学、生物学、神经科学等领域。本文将介绍几种常见的生物电信号测量技术&#xff0c;并讨…...

【开源】JAVA+Vue.js实现创意工坊双创管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 管理员端2.2 Web 端2.3 移动端 三、系统展示四、核心代码4.1 查询项目4.2 移动端新增团队4.3 查询讲座4.4 讲座收藏4.5 小程序登录 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的创意工坊双创管理…...

Python基于opencv的人脸识别上课签到考勤系统,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…...

【HTML】HTML基础7.2(有序列表)

目录 标签 效果 注意 标签 <ol> <li>列表内容</li> <li>列表内容</li> <li>列表内容</li> <li>列表内容</li> 。。。。。。 </ol> 效果 代码 <ol><li>银河护卫队 10000000000</li><l…...

ucode usage使用方法

需结合代码和main函数的命令行去快速理解该库&#xff1b; main.c 和example中的代码示例 源代码的地址&#xff1a;https://github.com/jow-/ucode.git 翻译地址&#xff1a;https://github.com/jow-/ucode/blob/master/docs/tutorials/01-usage.md ucode命令行提供了一系列的…...

HCIA-HarmonyOS设备开发认证V2.0-习题

目录 习题一习题二习题三&#xff08;待续...&#xff09;坚持就有收获 习题一 # HarmonyOS简介 1. 以下哪几项属于OpenHarmony的技术特性&#xff1f;&#xff08;&#xff09;A. 统一OS&#xff0c;弹性部署B. 一次开发&#xff0c;多端部署C. 硬件互助&#xff0c;资源共享…...

【深度学习笔记】优化算法——随机梯度下降

随机梯度下降 在前面的章节中&#xff0c;我们一直在训练过程中使用随机梯度下降&#xff0c;但没有解释它为什么起作用。为了澄清这一点&#xff0c;我们刚在 :numref:sec_gd中描述了梯度下降的基本原则。本节继续更详细地说明随机梯度下降&#xff08;stochastic gradient d…...

oss-fuzz-gen:一款基于LLM的模糊测试对象生成与评估框架

关于oss-fuzz-gen oss-fuzz-gen是一款基于LLM的模糊测试对象生成与评估框架&#xff0c;该工具可以帮助广大研究人员使用多种大语言模型&#xff08;LLM&#xff09;生成真实场景中的C/C项目以执行模糊测试。 该工具基于Google的OSS-Fuzz平台实现其功能&#xff0c;并对生成的…...