python用turtle画国旗

Python GUI编程(Turtle)——绘制中国五星红旗 Python turtle绘制 国旗—五星红旗 # 中华人民共和国国旗是五星红旗,中华人民共和国的象征和标志。中华人民共和国国旗的设计者是曾联松, # 旗面为红色,长方形,其长与高为三与二之比,旗面左上方缀黄色五角星五颗。 # 一星较大,其外接圆直径为旗高十分之三,居左;四星较小,其外接圆直径为旗高十分之一,环拱于大星之右。 # 中华人民共和国国旗于1949年7月14日至8月15日开始征求国旗图案。 # 1949年8月20日,国旗国徽评选委员会共收到了2992幅(一说为3012幅)国旗图案。 # 1949年 阅读详情
AI摘要

文章讲述了如何使用Python的turtle库来制作中国国旗,包括国旗尺寸分析、五角星绘制位置计算和代码实现过程。作者详细介绍了国旗比例、五角星布局,并提供了完整的代码示例。

目录

 前言

一、分析国旗

1. 国旗本身

2. 五颗星星

二、用程序制作出国旗

1. 准备

2. 制作绘制五角星的函数

3. 画出国旗红色部分

 4. 画出五颗红星

5. 完整代码

总结


 前言

        正值中秋和国庆的佳节,我想大家都一定很开心吧,不用上班,不用工作,可以躺在沙发上看电视,也可以睡懒觉,想想就很美好。同时,我也发现我的csdn账号上好久没写文章了,所以,为了庆祝国(八)庆(天)佳(假)节(期),今天我来教大家如何用python的turtle库画国旗

我的python版本是3.8.5,请别的版本的人不要误会awa


一、分析国旗

1. 国旗本身

国旗想必大家都不陌生吧,对于学生来说,每周一的升旗仪式都会把国旗高高升起。

但是——

你真的了解国旗吗?

我相信大部分的人都不会特别了解。

所以,我搜集了有关国旗的资料,源于百度百科:

中华人民共和国国旗是五星红旗,为中华人民共和国的象征和标志。中华人民共和国国旗的设计者是曾联松,旗面为红色,长方形,其长与高为三与二之比,旗面左上方缀黄色五角星五颗。一星较大,其外接圆直径为旗高十分之三,居左;四星较小,其外接圆直径为旗高十分之一,环拱于大星之右。

 啊?

是不是第一眼看到这段文字时很懵?

我也是,所以我梳理了一下主要内容: 

国旗的长与高之比为3:2,也就是长的三分之二是高,再通俗亿点,就是长除以三乘二等于高

为什么我没说星星呢?不要着急,看段广告下章我们再讲。

百度百科又说:

根据1949年9月28日中国人民政治协商会议第一届全体会议主席团公布的《国旗制法说明》,中华人民共和国国旗之通用尺度定为如下五种,各界酌情选用:

甲、长288公分,高192公分。

乙、长240公分,高160公分。

丙、长192公分,高128公分。

丁、长144公分,高96公分。

戊、长96公分,高64公分

经过挑选,我选择了乙,也就是240x160,因为数好算awa

所以我们长和高的长度都定下来了,针不戳

2. 五颗星星

 

我在网上找到一个图,这完美地告诉了我们五颗星星的位置

针不戳×2

我们可以看到他是把国旗的四分之一分成了上下10份左右15份,那么整个国旗就被分为了上下20份左右30份。

从左上角开始数,最大的星星的最左侧角在第二列第四行,四颗星星分别是第九列第二行,第十一列第四行,第十一列第七行,第九列第十行(本来应该是第九行,但是制作的时候感觉不太好,就更改了一下)

理论结束,魔法实践开始!

二、用程序制作出国旗

1. 准备

我们开始程序之前,我们要先做一些准备:

from turtle import * #导入turtle库
height=160 #设置高
width=240 #设置长
a=pen()
penup()
goto(-400,400) #我测试了一下,-400,400作为国旗的左上角比较合适
pendown() #下笔

2. 制作绘制五角星的函数

因为我们在绘制国旗的时候会多次运用绘制五角星,但是turtle本身并没有这种东西,于是只能自己做(哭)

知周所众,如果我们要画一个五角星,要画五条边(简单画法)。而五角星的内角是36°。

这时候就有人说了:用一个循环,循环五次,每次画一条边,转36°,这不就行了嘛?

那你会得到这个:

观众:……%¥……#&%¥……&&*……

其实你忘了一点,转向是要转180-度数的

所以我们可以得到如下代码: 

def star():
    pendown() #下笔
    setheading(0) #设置角度
    for i in range(5):
        forward(100) #笔向前走
        right(144) #右转144°

由于国旗是金色的,那么我们给他填充一点色彩。为了进行微调,我们给他放一点参数:

def star(angle,long):
    pendown()
    setheading(0)
    right(angle)
    fillcolor('yellow')
    begin_fill()
    for i in range(5):
        forward(long)
        right(144)
    end_fill()

 

3. 画出国旗红色部分

这一部分很简单,就是画一个框,填充红色。

代码如下:

width=240
height=160

begin_fill()
fillcolor('red')

for j in range(2):
    forward(width)
    right(90)
    forward(height)
    right(90)

end_fill()

 但是——

这样你会得到这个:

这太小了,所以我把宽和高都扩大了三倍,并且我把左上角设置在了-400,400

 

这刚刚好,针不戳

 4. 画出五颗红星

接下来就到了最难的地方了——画出五颗红星

注意看这张图,第一颗红星是平的,他的每次画笔向前的长度是整个国旗长的长度的三十分之六,这颗红星的最左侧角在(2,4)的位置,所以我们可以得到如下代码:

penup()
goto(-400+width/30*2,400-height/20*4)
star(0,width/30*6)

先将笔抬起,然后将笔移动到-400+width/30*2,400-height/20*4,也就是最左侧的x坐标加上长的三十分之二,这就是这颗星星的最左侧角的x坐标,然后400-height/20*4也就是最上面的y坐标减去高的二十分之四,这就是这颗星星的最左侧角的y坐标,然后画出星星,每次笔的行进长度为国旗长的长度的三十分之六。

以此类推,我们可以推导出画这五颗星星的代码:

penup()
goto(-400+width/30*2,400-height/20*4)
star(0,width/30*6)

penup()
goto(-400+width/30*9,400-height/20*2)
star(-45,width/30*2)

penup()
goto(-400+width/30*11,400-height/20*4)
star(-10,width/30*2)

penup()
goto(-400+width/30*11,400-height/20*7)
star(0,width/30*2)

penup()
goto(-400+width/30*9,400-height/20*10)
star(-45,width/30*2)

由于五颗星星中有三颗有些倾斜,所以我大体估摸了一下角度,将他倾斜了过来。

至此,我们的五颗星星就画完了。

5. 完整代码

完整代码如下:

from turtle import * #导入turtle库
height=160*3 #设置高
width=240*3 #设置长
a=pen()
penup()
goto(-400,400) #我测试了一下,-400,400作为国旗的左上角比较合适
pendown() #下笔
def star(angle,long):
    pendown()
    setheading(0)
    right(angle)
    fillcolor('yellow')
    begin_fill()
    for i in range(5):
        forward(long)
        right(144)
    end_fill()

begin_fill()
fillcolor('red')

for j in range(2):
    forward(width)
    right(90)
    forward(height)
    right(90)

end_fill()

penup()
goto(-400+width/30*2,400-height/20*4)
star(0,width/30*6)

penup()
goto(-400+width/30*9,400-height/20*2)
star(-45,width/30*2)

penup()
goto(-400+width/30*11,400-height/20*4)
star(-10,width/30*2)

penup()
goto(-400+width/30*11,400-height/20*7)
star(0,width/30*2)

penup()
goto(-400+width/30*9,400-height/20*10)
star(-45,width/30*2)

 


总结

今天我们用turtle库做了一个国旗,虽然比较复杂,但是做出来很有成就感,而且很漂亮

这个文章我也是花了4个多小时来写,所以请大家多多点赞,多多评论!

这篇文章到此结束了,观众们可以洗洗睡了~

非喜勿喷!!!

python·turtle画中国国旗 然后就是这个c,啊~,我算了好久,后来发现是因为某种原因它算出来是,负的,对,然后那个规律和b就不一样,所以要变成加号(这里可能说的不清楚,本篇文章也只是我自己写来看的,没用勿喷/(ㄒoㄒ)/~~)我们把图中分成的一小格假设为1,然后用勾股定理和三角函数把角度和距离表示出来,再用python自带的math函数把他们算出来。然后这里的话很容易把x和y坐标弄错,因为x坐标往左是减,往右是加;y坐标往上是加,往下是减。近几天画了一个中国国旗,2:3的比例,要用到三角函数,难倒我了。 阅读详情

相关推荐

Python编写五星红旗

Python编写五星红旗

fuqiong123456的博客 6662

教你使用python绘制五星红旗

使用python语言绘制一幅五星红旗!代码简单易懂,快来学吧!

个人博客 1万+

简单运用python画国旗【python应用】

简单运用python画国旗【python应用】

m0_65507765的博客 2185

python turtle循环画五角星_Python宝典让小白5分钟学会画国旗,后有全套教程,赶紧收藏吧!...

今天小v给0基础的朋友们分享,如何快速用turtle画图的小技巧:既然要用python画一面国旗,首先就能想到用python中的图画库俗称小海龟,也就是老朋友turtle,之前画爱心时也用到的它。解决方案首先的知道turtle画图时基于一个二维坐标系中的,所以要画像国旗庄严而又神圣的图形,自然要严格要求画的尺寸以及坐标,特别是几颗五角星的坐标必须经过严格计算,当然这个步骤就需要在纸上找出坐标了。(...

weixin_39795325的博客 1669

Python用Turtle画美国国旗

由来:(小白学习Python)  疯狂的Python:快速入门精讲参考资料1:10分钟轻松学会 Python turtle 绘图参考资料2:美国国旗标准p = input('请输入国旗高度') # 国旗尺寸 p = float(p) a = 1.9 # 一些重要数值 b = 1.0 c = 1.9*2/5 d = 7/13 e = c/12 f = d/10 k = 0.0616 l ...

sylviax的博客 7848

Python Turtle库画一个美国国旗

美国国旗 标准参考的是百度文库上面的标准:美国国旗标准 美国国旗标准 国旗宽度A=1.0 国旗长度B=1.9 联邦范围宽度:C=0.5385(7/13,7条间纹的阔度) 联邦范围长度:D=0.76(1.9X2/5,国旗长度的五分之二) E=F=0.0538(C/10,联邦范围的十分之一阔度) G=H=0.0633(D/12,联邦范围的十二分之一的长度) 星的直径:K=0.0616 条纹的宽度:L=0.0769(1/13) 白色:#FFFFFF 国旗红:#B22234 国旗蓝:#3C3B6E 完整代码

AtomQQ_2022313691的博客 1811

python语言:五星红旗制作

python语言五星红旗制作代码

m0_74393239的博客 7901

ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)解决办法

问题:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO) 很久没用这台电脑的mysql了,今天需要连接数据库,启动数据库报错: ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO) 解决方法: 查阅资料后知道了,应该使用已知的用户名和密码登陆 mysql -u root -p 然而密

一个超会写Bug的程序猿的博客 43万+

Python 五星红旗

font(可有可没有):字体三元组(fontname、fontsize、fonttype):fontname即字体名称 可写例如:'宋体'turtle.screensize(width,height,bgcolor) (该方法用于调整Turtle所画的画布的大小和颜色)屏幕中心即初始点为原点(0,0),形成直角坐标系,按题目所给要求,将画笔移动到对应的位置。align(可有可没有):可写:left即左、center即中、right即右,turtle.pencolor('red') (画笔的颜色)

Smyslenny_L的博客 3696

【硬件开发】振铃

如果是开关管的振铃,那么桥臂的SW处产生的振铃会窜入驱动电路,造成的结果就是驱动电路和上桥臂下桥臂之间的SW节点都会有振铃现象。如果是驱动电路的振铃,那么MCU的输出引脚还是正常的PWM,但是到了MOS管两侧就变成带有振铃的PWM波形了。开关振铃产生的原因是MOS管上面的寄生电感当开关管打开时为了保持电流不变感应出的电压会对电源和地产生冲击。开关管的驱动线上的寄生电容和寄生电感导致的振铃为驱动电路振铃。开关管上的寄生电容和寄生电感导致的振铃为开关节点振铃。、电感等元件的存在,导致电路中的电压和。

weixin_62546664的博客 1822

基于FPGA的CORDIC算法实现——Verilog版

目前,学习与开发FPGA的程序员们大多使用的是Verilog HDL语言(以下简称为Verilog),关于Verilog的诸多优点一休哥就不多介绍了,在此,我们将重点放在Verilog的运算操作上。 我们都知道,在Verilog中,运算一般分为逻辑运算(与或非等)与算术运算(加减乘除等)。而在一开始学习Verilog时,老司机一定会提醒我们,“切记,千万别用‘/’除、‘%’取模(有的也叫取余)和‘

善良の一休君的博客 6万+

Py代码学习(Ⅴ)——用python代码海龟绘图法绘制五星红旗

红色为第,长宽比例为3:2。甲、为便于确定五星之位置,先将旗面对分为四个相等的长方形,将左上方之长方形上下划为十等分,左右划为十五等分。丙、四颗小五角星的中心点,第一点在该长方形上二下八、左十右五之处,第二点在上四下六、左十二右三之处,第三点在上七下三、左十二右三之处,第四点在上九下一、左十右五之处。在每个圆上各定出五个等距离的点,其中均须各有一点位于大五角星中心点与以上四个圆心的各联结线上。我们要想运用python代码绘制出五星红旗,我们首先要对五星红旗的外观形状,长宽比,以及各五角星的方位进行了解。

weixin_74373920的博客 8890

主板USB接口全部失效解决方案(通用串行总线USB控制器有黄色叹号)保姆级教程亲测有效

通用串行总线控制器总是有叹号解决办法 办公室的崩腾时代老电脑,疫情期间没人用,来了开机之后发现鼠标键盘都用不了,本以为是主机放时间长出了问题,后来想起来就百度了“鼠标键盘都失效”的标题,结果发现了“串行总线控制器总是感叹号”的关联问题。正好办公室电脑都装有teamviwer常用来远程办公(在家偷懒)。所以通过远程发现电脑室可以运行的。并在控制面板发现:通用串行总线控制器总是感叹号,插入外设时USB无反应。如图:​ 并且右键选中其中一个,点击最后一个选项:“属性” 可以发现“设备状态”中会提示“由...

xiao_bai_0_0的博客 2万+

如何用python的turtle库画国旗?

中华人民共和国国旗是五星红旗,为中华人民共和国的象征和标志。中华人民共和国国旗的设计者是曾联松,旗面为红色,长方形,其长与高为三与二之比,旗面左上方缀黄色五角星五颗。一星较大,其外接圆直径为旗高十分之三,居左;四星较小,其外接圆直径为旗高十分之一,环拱于大星之右。国旗的长与高之比为3:2,也就是长的三分之二是高。本身并没有这种东西,于是只能自己做,如果我们要画一个五角星,要画五条边(简单画法)。而五角星的内角是36°,但是注意要调转180度。由于结果不方便展示,完整代码如下,读者可以自行去运行。

秉烛夜游bzyy 1438

【AUTOSAR-COM】-2.3_通过PduGroup批量控制CAN Frame/Pdu的接收

-->如果实现类似UDS诊断 $28服务,控制所有APP CAN Rx Frame/Pdu/报文接收; -->自定义过滤CAN信号的接收。

「汽车电子助手」的博客 1989

ESP32-C3蓝牙透传通信的BLE协议栈工程实践

蓝牙低功耗(BLE)透传是一种基于GATT服务模型的数据透明传输机制,其核心原理在于Peripheral设备通过广播建立连接,并在GATT Server层暴露可读写特征值实现双向数据通道。该技术具备低功耗、跨平台兼容性强、开发门槛适中等优势,广泛应用于智能硬件、工业传感器与嵌入式网关等场景。在实际工程中,透传稳定性高度依赖BLE协议栈的分层协同——Link Layer负责可靠连接建立,GATT Server则定义数据交互语义;而ESP32-C3的AT指令集正是对这两层能力的封装调度。本文聚焦BLE透传的关键

weixin_29859471的博客 121

【turtle绘图】用python的turtle库画国旗

国旗旗面为红色,长方形,其长与高为三与二之比,旗面左上方缀黄色五角星五颗。一星较大,其外接圆直径为旗高十分之三,居左;四星较小,其外接圆直径为旗高十分之一,环拱于大星之右。国旗的长与高之比为3:2,也就是长的三分之二是高,五角星,要画五条边(简单画法)。而五角星的内角是36°,但是注意要调转180度。

教师中的射鸡师 1229

基于大模型与知识图谱的对话引导意图澄清系统技术解析

本文提出了一种基于知识图谱与大语言模型的意图澄清系统,旨在解决传统RAG模型在跨文档推理和主动澄清方面的不足。系统通过知识图谱驱动的多跳推理机制和链式思维引导的对话流程,实现了动态信息补全和意图澄清。核心创新包括:1)知识图谱构建与节点选择算法;2)标签探索策略与原子事实提取方法;3)主动澄清引擎的工作流程。实验表明,该系统能有效提升复杂查询的准确率,在医疗、金融等领域实现精准交互。关键代码展示了节点选择、标签匹配和事实提取等核心组件的实现细节。

411

用python函数画德国国旗代码_使用Python的turtle模块画国旗

Python的turtle模块画国旗主要用到两个函数:draw_rentangle和draw_star。至于函数的调用就和我们学的C,C++是一样的。对于turtle画国旗的程序中,首先是查找国旗的画法,才能用程序实现。自己在实现的过程中主要是对turtle.circle()没有准确掌握,所以花了一些不必要的时间。turtle.circle画弧时,海龟(turtle)的方向就是弧的切线方向,也就是...

weixin_39623050的博客 613

XCP详解「3.1·ASAP2新建A2L文件」

后面是ASAP2新建A2L的操作步骤,如果是APE中新建的A2L就无需以下操作,APE只需要导入现成的A2L即可。退出点击保存时会提示保存A2L文件,是因为前面导出的是1.70版本,工程最低1.71,可以另外起个名字即可。导入elf文件,elf路径建议直接索引编译生成的Debug下的,防止编译后忘记更新。导出V1.70格式A2L文件,APE17支持V1.70。通过ASAP2生成需要A2L文件更常用些。同一个信号可以创建不同属性量。ASAP2中新建A2L文件。设置标定信号数量最大值。XCP详解「总目录」

光明磊学习&积累的地方 3059

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Python 内置turtle模块 —— 画一面国旗(基础篇)

# 用 turtle模块 画一面国旗 """ 思考: 1、怎么导入和使用 turtle模块? 2、你对 turtle模块 了解有多少? 介绍: 1、turtle模块 是一个很强大的 Python内置模块 2、理论上大部分的图案都可以用 turtle模块 画出来 3、现在就来和大家浅学一下 turtle模块 用法:画一张国旗 ...........................

zhouhua2022的博客 2595

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

用python函数画德国国旗代码_用Python的turtle模块画国旗

最近在学Python,发现Python的海龟绘图非常有趣,就分享一下!话不多说,先来Python turtle的官方文档链接: Python turtle。这里面有turtle的各类指令。turtle画国旗主要用到两个函数:draw_rentangle和draw_star。import timeimport turtleimport osdef draw_rectangle(start_x,sta...

weixin_39926749的博客 775

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

使用python的turtle画国旗

使用python的turtle库画国旗 代码如下: import turtle from math import * # 绘制五角星, 默认为正五角星(一个顶点朝正北方) # 五角星每个顶角的角度为 180/5 = 36度 或 pi/5 # (x, y): 五角星中心点坐标 # size: 中心到顶点的长度, 即外接圆的半径 # angle 旋转角度, 正五角星正北顶点 turtle.left 方式旋转到被绘制五角星的角度 def draw5star(x=0, y=0, size=100, angle=

weixin_51370049的博客 4754

Python使用Turtle画日本国旗

日本国国旗是日本国的国旗,又名日章旗、太阳旗,呈长方形,长宽比例为3:2,圆形上下的空隙相同,圆形的直径为旗帜长度的五分之三,圆形的中心点与旗面的中心点重合

DigitalCamer的专栏 1783
上一篇: python tkinter画福字
pythonitstream
博客等级 码龄5年 40粉丝 14原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值