用Python画一个五星红旗

在这里插入图片描述

#coding=utf-8
import turtle
import mathdef draw_polygon(aTurtle, size=50, n=3):''' 绘制正多边形args:aTurtle: turtle对象实例size: int类型,正多边形的边长n: int类型,是几边形        '''for i in range(n):aTurtle.forward(size)aTurtle.left(360.0/n)def draw_n_angle(aTurtle, size=50, num=5, color=None):''' 绘制正n角形,默认为黄色args:aTurtle: turtle对象实例size: int类型,正多角形的边长n: int类型,是几角形    color: str, 图形颜色,默认不填色'''if color:aTurtle.begin_fill()aTurtle.fillcolor(color)for i in range(num):aTurtle.forward(size)aTurtle.left(360.0/num)aTurtle.forward(size)aTurtle.right(2*360.0/num)if color:aTurtle.end_fill()def draw_5_angle(aTurtle=None, start_pos=(0,0), end_pos=(0,10), radius=100, color=None):''' 根据起始位置、结束位置和外接圆半径画五角星args:aTurtle: turtle对象实例start_pos: int的二元tuple,要画的五角星的外接圆圆心end_pos: int的二元tuple,圆心指向的位置坐标点radius: 五角星外接圆半径color: str, 图形颜色,默认不填色    '''aTurtle = aTurtle or turtle.Turtle()size = radius * math.sin(math.pi/5)/math.sin(math.pi*2/5)aTurtle.left(math.degrees(math.atan2(end_pos[1]-start_pos[1], end_pos[0]-start_pos[0])))aTurtle.penup()aTurtle.goto(start_pos)aTurtle.fd(radius)aTurtle.pendown()aTurtle.right(math.degrees(math.pi*9/10))draw_n_angle(aTurtle, size, 5, color)def draw_5_star_flag(times=20.0):''' 绘制五星红旗args:times: 五星红旗的规格为30*20, times为倍数,默认大小为10倍, 即300*200'''width, height = 30*times, 20*times# 初始化屏幕和海龟window = turtle.Screen()aTurtle = turtle.Turtle()aTurtle.hideturtle()aTurtle.speed(10)# 画红旗aTurtle.penup()aTurtle.goto(-width/2, height/2)aTurtle.pendown()aTurtle.begin_fill()aTurtle.fillcolor('red')aTurtle.fd(width)aTurtle.right(90)aTurtle.fd(height)aTurtle.right(90)aTurtle.fd(width)aTurtle.right(90)aTurtle.fd(height)aTurtle.right(90)    aTurtle.end_fill()# 画大星星draw_5_angle(aTurtle, start_pos=(-10*times, 5*times), end_pos=(-10*times, 8*times), radius=3*times, color='yellow')  # 画四个小星星stars_start_pos = [(-5, 8), (-3, 6), (-3, 3), (-5, 1)]for pos in stars_start_pos:draw_5_angle(aTurtle, start_pos=(pos[0]*times, pos[1]*times), end_pos=(-10*times, 5*times), radius=1*times, color='yellow')  # 点击关闭窗口window.exitonclick()if __name__ == '__main__':draw_5_star_flag()

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

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

相关文章

Linux--守护进程与会话

进程组 概念 进程组就是一个或多个进程的集合。 一个进程组可以包含多个进程。 下面我们通过一句简单的命令行来展示: 为什么会有进程组? 批量操作:进程组允许将多个进程组织在一起,形成一个逻辑上的整体。当需要对多个进程…

力扣198-打家劫舍

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的…

下载Kafka 3.0.0教程

1、Kafka 3.0.0下载地址 Apache Kafka 2、往下拉,查找3.0.0版本点击下载

python测试开发---css基础

CSS(Cascading Style Sheets,层叠样式表)是用于描述 HTML 或 XML 文档的外观和格式的语言。它可以控制网页元素的布局、颜色、字体等样式,使页面更美观和易用。下面是 CSS 基础的介绍,包括语法和常用的属性。 1. CSS …

(PySpark)RDD实验实战——取最大数出现的次数

实验环境: 提前准备好findspark,pyspark,py4j等库import findspark from pyspark import SparkContext, SparkConffindspark.init() #初始化spark,默认为你所设定的环境变量 conf SparkConf().setAppName("jsytest")…

React——setState 新旧值复用问题

异步状态更新获取新值问题 问题解决 问题 const updateFrameRange (frameNumber, rangeValue) > {//const startFrame Math.max(frameNumber - rangeValue.before, 1);const endFrame Math.min(frameNumber rangeValue.after, maxFrame); console.log(frameNumber,rang…

【C++前后缀分解 降维】2906. 构造乘积矩阵|2074

前后缀分解 C前后缀分解 LeetCode2906. 构造乘积矩阵 给你一个下标从 0 开始、大小为 n * m 的二维整数矩阵 grid ,定义一个下标从 0 开始、大小为 n * m 的的二维矩阵 p。如果满足以下条件,则称 p 为 grid 的 乘积矩阵 : 对于每个元素 p[…

使用python 将world的题库导入某学习软件的模板

本python中使用了模块: re:用于写正则 python-docx:用于读取worl中的数据 openpyxl:用于将内容写入excel -----------------------------------------前言----------------------------------------------- 此代码仅可以使用&#xff0c…

数据结构之‘栈’

文章目录 1.简介2. 栈的初始化和销毁3. 进栈和出栈3.1 进栈3.2 出栈3.3 栈的打印 1.简介 一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行(数据插入和删除操作)的一端称为栈顶,另一端称为栈底。压栈&#xf…

C语言之预处理详解(完结撒花)

目录 前言 一、预定义符号 二、#define 定义常量 三、#define定义宏 四、宏与函数的对比 五、#和## 运算符 六、命名约定 七、#undef 八、条件编译 九、头文件的包含 总结 前言 本文为我的C语言系列的最后一篇文章,主要讲述了#define定义和宏、#和##运算符、各种条件…

W25QXX系列Flash存储器模块驱动代码

目录 W25QXX简介 硬件电路 W25Q128框图 Flash操作注意事项 驱动代码 W25QXX.h W25QXX.c W25QXX简介 W25Qxx系列是一种低成本、小型化、使用简单的非易失性存储器,常应用于数据存储、字库存储、固件程序存储等场景 存储介质:Nor Flash&#xff0…

算法入门-贪心1

第八部分:贪心 409.最长回文串(简单) 给定一个包含大写字母和小写字母的字符串 s ,返回通过这些字母构造成的最长的回文串 的长度。 在构造过程中,请注意 区分大小写 。比如 "Aa" 不能当做一个回文字符串…

如何通过 PhantomJS 模拟用户行为抓取动态网页内容

引言 随着网页技术的不断进步,JavaScript 动态加载内容已成为网站设计的新常态,这对传统的静态网页抓取方法提出了挑战。为了应对这一挑战,PhantomJS 作为一个无头浏览器,能够模拟用户行为并执行 JavaScript,成为了获…

Android RecycleView 深度解析与面试题梳理

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 引言 在 Android 开发中,列表和网格布局是非常常见的界面元素,它们用于展示大量数据集合。RecyclerView 是 Android 提…

小众语言ruby在苹果中的初步应用

前言 感觉Ruby在苹果系统中充当一种脚本语言来使用。 1、直接输入ruby没有反应 2、可显示结果的命令 ruby -e "puts Goodbye, cruel world!" 效果如下图: 说明苹果系统中ruby已经安装完毕,或者就是自带的。 3、编辑运行第一个ruby程序 输入…

nodejs+express+vue教辅课程辅助教学系统 43x2u前后端分离项目

目录 技术栈具体实现截图系统设计思路技术可行性nodejs类核心代码部分展示可行性论证研究方法解决的思路Express框架介绍源码获取/联系我 技术栈 该系统将采用B/S结构模式,开发软件有很多种可以用,本次开发用到的软件是vscode,用到的数据库是…

MySQL学习(视图总结)

文章目录 MySQL的视图视图基本操作创建视图修改视图 练习 MySQL的视图 视图是虚拟的表,是从数据库中一个或多个表中导出来的表,作用是可以隐藏一些数据,也可以将一些复杂的查询结果做成视图。数据库只保存视图的定义,而不保存视图…

运维最难的是哪些部分呢

在讨论运维工作中,监控通常被视为一个核心且至关重要的环节,但它是否可以被简单地定义为“最难”的工作,则取决于多种因素,包括但不限于技术复杂度、资源投入、团队结构、业务特性以及故障应对的及时性等。以下是对运维中监控工作…

基因组注释工具MAKER的报错与解决方法

基因组注释工具MAKER的报错与解决措施 ● 报错1 ● 报错内容:ERROR: Could not determine if DFam is installed ● 解决措施: ● export LIBDIR/your_path/envs/maker/share/RepeatMasker/Matrices ● export LIBDIR/your_path/envs/maker/share/R…

Linux常见查看文件命令

目录 一、cat 1.1. 查看文件内容 1.2. 创建文件 1.3. 追加内容到文件 1.4. 连接文件 1.5. 显示多个文件的内容 1.6. 使用管道 1.7. 查看文件的最后几行 1.8. 使用 -n 选项显示行号 1.9. 使用 -b 选项仅显示非空行的行号 二、tac 三、less 四、more 五、head 六、…