利用Python海龟绘图画一个世界杯的足球

news2024/9/22 17:28:51

利用Python海龟绘图画一个世界杯的足球

花有重开日 人无再少年
四年一次的世界杯快要结束,为了纪念此次世界杯,特意用Python画了一个足球。

1.设计思路以及实现效果

世界杯足球实现思路:

  • 首先使用海龟画一个圆形作为足球的外边框。
  • 然后在足球框的中心位置,绘制一个五边形,确定位置坐标,通过fd()方法绘制一条线,并通过seth()方式逆时针旋转得到一个五边形,最后填充成黑色。
  • 画好一个五边形后,在圆形的顶部、左上角、左下角、右上角、右下角统统画一个五边形,这五个位置的五边形要比中心五边形要小一点,因此合理控制fd()方法的实参。
  • 五边形全部画好后,接下来就很简单了,也是去控制画笔的位置,以及指针的角度,然后通过turtle.forward(130)方法去绘制一条线,将五边形都连接在一起。
  • 最终就实现了足球的效果。

画完的足球效果如下:
在这里插入图片描述

2.完整代码如下

import turtle


turtle.pensize(10)

turtle.speed(0)
"""足球外框"""
turtle.penup()
# 移动画笔的坐标
turtle.goto(0, -200)
turtle.pendown()
turtle.color('black')
turtle.circle(200)

# 中心五边形
turtle.penup()
turtle.goto(-40, -67)
turtle.pendown()
d = 0
turtle.begin_fill()
for i in range(5):
    turtle.fd(80)
    # 逆时针旋转,呈现出正立的五边形
    d += 72
    turtle.seth(d)
turtle.end_fill()

# 顶部五边形
turtle.penup()
turtle.goto(-23, 198)
turtle.pendown()
d = 0
turtle.begin_fill()
for i in range(5):
    turtle.fd(40)
    # 逆时针旋转,呈现出倒立的五边形
    d -= 72
    turtle.seth(d)
turtle.end_fill()

# 左上角五边形
turtle.penup()
turtle.goto(-180, 66)
turtle.pendown()
d = 0
turtle.begin_fill()
for i in range(5):
    turtle.fd(40)
    # 逆时针旋转,呈现出倒立的五边形
    d -= 72
    turtle.seth(d)
turtle.end_fill()

# 右上角五边形
turtle.penup()
turtle.goto(140, 66)
turtle.pendown()
d = 0
turtle.begin_fill()
for i in range(5):
    turtle.fd(40)
    # 逆时针旋转,呈现出倒立的五边形
    d -= 72
    turtle.seth(d)
turtle.end_fill()

# 左下角五边形
turtle.penup()
turtle.goto(-122, -110)
turtle.pendown()
d = 0
turtle.begin_fill()
for i in range(5):
    turtle.fd(40)
    # 逆时针旋转,呈现出倒立的五边形
    d -= 72
    turtle.seth(d)
turtle.end_fill()

# 右下角五边形
turtle.penup()
turtle.goto(73, -110)
turtle.pendown()
d = 0
turtle.begin_fill()
for i in range(5):
    turtle.fd(40)
    # 逆时针旋转,呈现出倒立的五边形
    d -= 72
    turtle.seth(d)
turtle.end_fill()

# 五边形连线的宽度为5
turtle.pensize(5)

# 左上角与顶部的连接线
turtle.penup()
turtle.goto(-132, 68)
turtle.left(45)
turtle.pendown()
turtle.forward(130)

# 右上角与顶部的连接线
turtle.penup()
turtle.goto(140, 66)
turtle.left(95)
turtle.pendown()
turtle.forward(138)

# 左下角与左上角的连接线
turtle.penup()
turtle.goto(-122, -110)
turtle.right(30)
turtle.pendown()
turtle.forward(130)

# 右下角与右上角的连接线
turtle.penup()
turtle.goto(120, -110)
turtle.right(39)
turtle.pendown()
turtle.forward(130)

# 左下角与右下角的连接线
turtle.penup()
turtle.goto(-65, -153)
turtle.right(72)
turtle.pendown()
turtle.forward(130)

# 中心与顶部的连接线
turtle.penup()
turtle.goto(1, 167)
turtle.right(88)
turtle.pendown()
turtle.forward(130)

# 中心与左上角的连接线
turtle.penup()
turtle.goto(-20, 17)
turtle.right(98)
turtle.pendown()
turtle.forward(130)

# 中心与左上角的连接线
turtle.penup()
turtle.goto(20, 17)
turtle.right(170)
turtle.pendown()
turtle.forward(130)

# 中心与左下角的连接线
turtle.penup()
turtle.goto(-25, -20)
turtle.right(122)
turtle.pendown()
turtle.forward(135)

# 中心与右下角的连接线
turtle.penup()
turtle.goto(95, -180)
turtle.right(123)
turtle.pendown()
turtle.forward(135)

turtle.color('blue')

# 文字
turtle.penup()
turtle.goto(-170, 250)
turtle.pendown()
turtle.write("2022卡塔尔世界杯!", font=("幼圆", 32))

# 文字
turtle.penup()
turtle.goto(-170, -270)
turtle.pendown()
turtle.write("足球(jiangxl~制作)", font=("幼圆", 32))

turtle.hideturtle()

turtle.done()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/69291.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3天带你走向实战!阿里顶配版Spring全家桶面试进阶笔记有多强?

Spring框架自从诞生以来就一直备受开发者青睐,它涵盖了Spring、Springboot、SpringCloud等诸多解决方案,一般我们都会统称为Spring全家桶!出于Spring框架在Java开发者心中中的统治地位,所以不管是面试还是工作,Spring都…

夜神模拟器+fiddler抓包(抓取APPhttps请求,删除sll证书校验)

1.安装fiddler https://telerik-fiddler.s3.amazonaws.com/fiddler/FiddlerSetup.exe (下载不了直接去官网找) 2.配置 开启https请求抓取,不抓https可忽略2.修改或查看端口(使用默认8888端口,要自定义端口可修改&#…

Arduino 定时器中断

Arduino 定时器中断 Circuits Arduino 查看原文 简介:Arduino 定时器中断 奥雷里(地球、月亮和太阳) 立式兰花播种机 胶合板书柜扬声器 计时器中断允许您以非常特定的时间间隔执行任务,而不管代码中发生了什么其他事情。我…

Unity ILRuntime Debugger使用及常见问题

目录前言1.安装2.使用3.常见问题前言 ILRuntime支持在VS中断点调试,下面说一下ILRuntime Debugger的使用及常见问题。 1.安装 需要下载对应版本的ILRuntime Debugger VS插件。我是在Unity中PackageManager安装的ILRuntime,可以在插件信息中查看版本。…

记SQL插入emoji成功,但是程序插入失败问题

在执行单测时,碰到了以下熟悉的问题 org.springframework.jdbc.UncategorizedSQLException: ### Error updating database. Cause: java.sql.SQLException: Incorrect string value: \xF0\x9F\x92\x8B for column name at row 1 ### The error may involve com.*…

Java入门教程(16)——条件判断语句

文章目录1. if结构1.1 if 单分支结构1.2 if-else 双分支结构1.3 if-else if-else 多分支结构switch 语句switch 多分支结构1. if结构 1.1 if 单分支结构 语法结构: if(布尔表达式){ 语句块 }实例:掷色子游戏 这里给大家扩展一个Math函数 Math.Random()&#xff0c…

动态规划算法

1.简介 1.动态规划(Dynamic Programming)算法的核心思想是: 将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法; 2.动态规划算法与分治算法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解; 3.与分治法不同…

项目统一规范包管理器

一般来说每个团队都会统一规定项目内只使用一个包管理器,譬如:npm、yarn、pnpm等,我们可以在文档中或者项目根目录REDEM.md中进行描述来形成共识,但毕竟是文档,并不能真正的进行约束,如果有项目成员没有看文…

SpringBoot自动装配原理分析,看完你也能手写一个starter组件

什么是 SpringBoot 2012 年 10 月,一个叫 Mike Youngstrom 的人在 Spring Jira 中创建了一个功能请求,要求在 Spring Framework 中支持无容器 Web 应用程序体系结构,提出了在主容器引导 Spring 容器内配置 Web 容器服务。这件事情对 SpringBo…

Linux 进程间通信

目录 进程间通信的必要性 进程间通信的技术背景 进程间通信的本质理解: 管道IPC:匿名管道 示意图 匿名管道的本质原理: demo示例代码: pipe 系统调用 注意: 管道读写的4种情况: 管道的特点&…

H5UI库和二维码

一、H5UI库 1、使用方法: ​ (1)页面中引入css文件 ​ h5ui.css (h5ui.min.css) ​ (2)页面中引入js文件 ​ jquery.min.js ​ h5ui.min.js 2、组件的用法 ​ (1&#xff09…

为您的高速SPI添加强大和可靠的隔离交流

介绍 串行外设接口(SPI)是工业设备中常用于数字处理器核心和外围设备之间通信的一种协议。然而,为了安全使用,有必要对外围设备和核心进行电隔离。虽然隔离和SPI都是成熟的技术,但将两者接口并不像预期的那么简单。 …

SAP ABAP——数据类型(五)【LIKE系列关键字】

💬个人网站:【芒果个人日志】​​​​​​ 💬原文地址:SAP ABAP——数据类型(五)【LIKE系列关键字】 - 芒果个人日志 (wyz-math.cn) 💂作者简介: THUNDER王,一名热爱财税…

【git】简洁实用教程

虽然之前有git的笔记了,但是操作和命令太多,有点冗余,下面整理出最常见的一些场景和git需求。 零、Git速查表 好习惯:每次提交后和开发代码前,都应该pull下 常见命令: git clone拉取服务器代码&#xff0…

深度解读 | 如何构建以指标为核心的ABI平台?

在上期一文中,我们了解到BI不同发展阶段运行模式及遇到的问题。“报表阶段”是以报表粒度进行管理,数据和报表完全耦合在一起,在不同报表间产生数据和指标的冗余和重复,形成报表爆炸、技术债,导致数据不可信、分析不敏…

Windows 7下安装oracle12c报错:O/S-Error:(OS 1385)

查看报错日志:C:\Program Files\Oracle\Inventory\logs\ installActions2015-04-21_09-29-15AM.log, 提示查看: D:\app\Administrator\cfgtoollogs\netca\trace_OraDB12Home1-150421 11上午1616.log , 打开该log,在尾部发现如下错…

LaTeX页眉页脚自定义【有图有代码】

LaTeX页眉页脚自定义【有图有代码】一、自定义页眉页脚示例【双页文档】\fancyhead \fancyfoot1、代码讲解2、自定义代码3、页眉和页脚的装饰线4、总页数二、自定义页眉页脚示例【单页文档】\rhead \rfoot三、\pagestyle{}介绍四、设置当前页面样式\thispagestyle{}平时在写报告…

中级软件设计师备考上午题总结

中级软件设计师备考上午题总结 前言 10月末11月初备考了中级软件设计师,备考时间总计20天整,由于预留的备考时间并不多,上午题复习策略主要是以看别人整理好的笔记为主,不懂的地方以看zst_2001的视频为辅,最后预留了…

JDBC Java对数据库增删改查(完整案例)

目录 一.综合上述7个步骤,实现向student表中插入一条数据。 1、注册驱动 2 、获取数据库连接对象 3、获取发送SQL语句对象 4、编写SQL语句,SQL语句最好是先在SQLyog里面写一遍并运行一下,保证SQL语句没有语法 错误,这里sid是…

C语言百日刷题第十二天

前言 今天是刷题第12天&#xff0c;放弃不难&#xff0c;但坚持一定很酷~ 临近期末&#xff0c;刷几套模拟题 C语言百日刷题第十二天前言选择题判断题编程题选择题 1.设a1;b2;c3;d4;则表达式a<b?a:c<d? a:d的结果是____。 A、3 B、1 C、4 D、2 正确选项&#xf…