python 繪制國(guó)旗的示例
國(guó)旗是一個(gè)國(guó)家的象征,它可以反映一個(gè)國(guó)家的特色和傳統(tǒng),國(guó)旗起源于近代的歐洲,是一個(gè)國(guó)家主權(quán)意識(shí)不斷增強(qiáng)后的必然產(chǎn)物,本文我們使用 Python 來(lái)畫(huà)幾面國(guó)旗,使用的 Python 庫(kù)是大家比較熟悉的 turtle。
五星紅旗
五星紅旗是中華人民共和國(guó)的國(guó)旗,它是由四顆小的黃五角星環(huán)繞一顆大的黃五角星組成的,底色為紅色,實(shí)現(xiàn)代碼如下:
turtle.setup(600,400,0,0)
turtle.bgcolor("red")
turtle.fillcolor("yellow")
turtle.color('yellow')
turtle.speed(10)
# 主星
turtle.begin_fill()
turtle.up()
turtle.goto(-280,100)
turtle.down()
for i in range (5):
turtle.forward(150)
turtle.right(144)
turtle.end_fill()
# 副星
turtle.begin_fill()
turtle.up()
turtle.goto(-100,180)
turtle.setheading(305)
turtle.down()
for i in range (5):
turtle.forward(50)
turtle.left(144)
turtle.end_fill()
turtle.begin_fill()
turtle.up()
turtle.goto(-50,110)
turtle.setheading(30)
turtle.down()
for i in range (5):
turtle.forward(50)
turtle.right(144)
turtle.end_fill()
turtle.begin_fill()
turtle.up()
turtle.goto(-40,50)
turtle.setheading(5)
turtle.down()
for i in range (5):
turtle.forward(50)
turtle.right(144)
turtle.end_fill()
turtle.begin_fill()
turtle.up()
turtle.goto(-100,10)
turtle.setheading(300)
turtle.down()
for i in range (5):
turtle.forward(50)
turtle.left(144)
turtle.end_fill()
turtle.hideturtle()
turtle.done()
實(shí)現(xiàn)效果如下:

青天白日旗
青天白日旗是民國(guó)時(shí)期的國(guó)旗,旗面作藍(lán)色以示青天,旗中置一射出叉光的白日?qǐng)D案,實(shí)現(xiàn)代碼如下:
t.colormode(255)
rcblue=(4,0,174)
rcred=(254,0,0)
def ol(r):
na = 15 / 180 * math.pi
ol=2*r*math.cos(na)
ol=int(round(ol))
return ol
def loop(r):
t.fd(ol(r))
t.right(150)
def main0(a,b):
t.color(rcred)
t.penup()
t.goto(-a/2,b/2)
t.pendown()
t.begin_fill()
t.goto(-a/2,-b/2)
t.goto(a/2,-b/2)
t.goto(a/2,b/2)
t.end_fill()
t.penup()
t.goto(-a/4,b/4)
t.pendown()
def main1(a1,b1):
t.color('gray',rcblue)
t.penup()
t.right(90)
t.fd(b1/2)
t.left(90)
t.pendown()
t.begin_fill()
t.fd(a1/2)
t.left(90)
t.fd(b1)
t.left(90)
t.fd(a1)
t.left(90)
t.fd(b1)
t.left(90)
t.fd(a1/2)
t.end_fill()
t.penup()
t.goto(-a/4,b/4)
t.seth(0)
t.pendown()
def main2(r):
t.pensize = 20
t.color('white', 'white')
t.penup()
t.fd(r)
t.right(180 - 30 / 2)
t.pendown()
t.begin_fill()
for i in range(12):
loop(r)
t.end_fill()
t.penup()
t.goto(-a/4,b/4)
t.seth(0)
t.pendown()
def main3(r1,r2):
t.color(rcblue, rcblue)
t.begin_fill()
t.up()
t.right(90)
t.fd(r1)
t.left(90)
t.pd()
t.circle(r1)
t.end_fill()
t.penup()
t.goto(-a/4,b/4)
t.pendown()
t.color('white', 'white')
t.begin_fill()
t.pu()
t.right(90)
t.fd(r2)
t.left(90)
t.pd()
t.circle(r2)
t.end_fill()
t.penup()
t.goto(-a/4,b/4)
t.seth(0)
t.pendown()
def main(a,b):
a1 = a / 2
b1 = b / 2
r = a1 / 4
r2 = a1 / 8
r1 = b1 * 17 / 80
main0(a,b)
main1(a1,b1)
main2(r)
main3(r1,r2)
a=1020
b=680
t.setup(1100,700,100,0)
實(shí)現(xiàn)效果如下:

紅底白十字旗
紅底白十字旗是瑞士的國(guó)旗,與其他國(guó)家有點(diǎn)不同,瑞士的國(guó)旗形狀是正方形的,代表了該國(guó)堅(jiān)守中立的政策,實(shí)現(xiàn)代碼如下:
def draw_crossshaped(aTurtle, width=0, height=0, color=None):
aTurtle = turtle.Turtle()
aTurtle.hideturtle()
aTurtle.penup()
aTurtle.goto(30, 50)
aTurtle.begin_fill()
aTurtle.fillcolor(color)
for i in range(4):
aTurtle.pendown()
aTurtle.fd(width)
aTurtle.rt(90)
aTurtle.fd(height)
aTurtle.rt(90)
aTurtle.fd(width)
aTurtle.lt(90)
aTurtle.end_fill()
def draw_RQ(times=20.0):
width, height = 26 * times, 26 * 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_crossshaped(aTurtle, width=80, height=80, color='white')
window.exitonclick()
實(shí)現(xiàn)效果如下:

星條旗
星條旗是美國(guó)的國(guó)旗,由兩部分組成,旗的左上方藍(lán)底上排列著 50 顆白色的星,其余部分是 13 道紅白相間的條子,實(shí)現(xiàn)代碼如下:
# 畫(huà)條紋
def drawSquar():
turtle.color('black', 'red')
turtle.begin_fill()
for i in range(7):
turtle.forward(600)
turtle.left(90)
turtle.forward(350 / 13)
turtle.left(90)
turtle.forward(600)
turtle.right(90)
turtle.forward(350 / 13)
turtle.right(90)
turtle.end_fill()
# 畫(huà)左上角的小矩形
def drawSmallsqure():
turtle.color('blue')
turtle.begin_fill()
turtle.left(90)
turtle.forward(350 / 2)
turtle.left(90)
turtle.forward(300)
turtle.left(90)
turtle.forward(350 * 7 / 13)
turtle.left(90)
turtle.forward(300)
turtle.end_fill()
# 畫(huà)左上角的星星
def drawSrarts():
x = -10
y = 0
for k in range(4):
x = -15
for i in range(6):
turtle.goto(x, y)
turtle.color('white')
turtle.begin_fill()
for j in range(5):
turtle.left(144)
turtle.forward(20)
x -= 50
turtle.end_fill()
y += 350 / 13 * 2
x = -10
y = 350 / 13
for i in range(3):
x = -35
for j in range(5):
turtle.goto(x, y)
turtle.color('white')
turtle.begin_fill()
for k in range(5):
turtle.left(144)
turtle.forward(20)
x -= 50
turtle.end_fill()
y += 350 / 13 * 2
turtle.setup(0.8, 0.8, -100, -100)
turtle.speed(10)
turtle.pu()
turtle.forward(300)
turtle.left(90)
turtle.forward(350 / 2)
turtle.left(90)
drawSquar()
turtle.home()
drawSmallsqure()
turtle.home()
drawSrarts()
turtle.hideturtle()
turtle.done()
實(shí)現(xiàn)效果如下:

總結(jié)
本文我們使用 Python 繪制了幾面國(guó)旗,有興趣的可以嘗試?yán)L制一下其他國(guó)家的國(guó)旗。
示例代碼:https://github.com/JustDoPython/python-examples/tree/master/yeke/py-flag
以上就是python 繪制國(guó)旗的示例的詳細(xì)內(nèi)容,更多關(guān)于python 繪制國(guó)旗的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
關(guān)于Python中兩個(gè)不同shape的數(shù)組間運(yùn)算規(guī)則
這篇文章主要介紹了關(guān)于Python中兩個(gè)不同shape的數(shù)組間運(yùn)算規(guī)則,眾所周知,相同?shape?的兩個(gè)數(shù)組間運(yùn)算是指兩個(gè)數(shù)組的對(duì)應(yīng)元素相加,我們經(jīng)常會(huì)碰到一些不同?shape?的數(shù)組間運(yùn)算,需要的朋友可以參考下2023-08-08
python利用遞歸方法實(shí)現(xiàn)求集合的冪集
這篇文章主要給大家介紹了關(guān)于python利用遞歸方法實(shí)現(xiàn)求集合的冪集的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
簡(jiǎn)單介紹Python中的filter和lambda函數(shù)的使用
這篇文章主要簡(jiǎn)單介紹了Python中的filter和lambda函數(shù)的使用,是Python學(xué)習(xí)中的基礎(chǔ),同時(shí)lambda匿名函數(shù)的使用也是經(jīng)常被用來(lái)對(duì)比各種編程語(yǔ)的重要特性,言需要的朋友可以參考下2015-04-04
Python產(chǎn)生一個(gè)數(shù)值范圍內(nèi)的不重復(fù)的隨機(jī)數(shù)的實(shí)現(xiàn)方法
這篇文章主要介紹了Python產(chǎn)生一個(gè)數(shù)值范圍內(nèi)的不重復(fù)的隨機(jī)數(shù)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
python文件轉(zhuǎn)為exe文件的方法及用法詳解
py2exe是一個(gè)將python腳本轉(zhuǎn)換成windows上的可獨(dú)立執(zhí)行的可執(zhí)行程序(*.exe)的工具,這樣,你就可以不用裝python而在windows系統(tǒng)上運(yùn)行這個(gè)可執(zhí)行程序。本文重點(diǎn)給大家介紹python文件轉(zhuǎn)為exe文件的方法,感興趣的朋友跟隨小編一起看看吧2019-07-07
使用python求斐波那契數(shù)列中第n個(gè)數(shù)的值示例代碼
這篇文章主要給大家介紹了關(guān)于使用python求斐波那契數(shù)列中第n個(gè)數(shù)的值的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07

