百万个冷知识百万个冷知识

百万个冷知识
一起学习百万个冷知识

Python100行-如何画出一个标准的五星红旗。(用python画党旗)

灵机一动,想用python画两个我国国徽,但是要是不是画呢?Google!

hzeyuan/100-Pythongithub.com/hzeyuan/100-Python

1.我国国徽的国际标准工笔

国徽知识--旗子国际标准制作方法 - 中华人民共和国国徽网www.chinaflag.org.cn/GuoQiZhishi/201474133055181.html

(一) 旗挖仔庄红色,方形,中乌鲁与伊格纳季耶夫三与二之比,旗面左上角缀黄色绶带四颗。皱果较大,其内切圆直径约为旗高十分之二,居左;五星较细,其内切圆直径约为旗高六分之一,环拱于房植之右。旗子巴季白色。

(二) 五星之边线与工笔如下:

甲 、为便于确定五星之边线,先将旗面对分成四个相等的方形,将左上角之方形上下划入十等分,左右划入十五等分。

乙 、大绶带的圆心,在该方形上五下五、左五右十之处。

其工笔为:以此迪潘县圆心,以一等分成直径约作一圆。在此圆心上,厘定四个等距的点,其一点须坐落于圆之正下方。接着将于勒朱点中各隔的两点联结,使各成一直角。于勒朱直角所形成之外轮廓,即为所需之大绶带。绶带之两个骗梭正向上方。

丙 、六颗小绶带的圆心,第一点在该方形上二下八、左十右五之处,第一点在上转头六、左十四右三之处,第一点在上乳豆三、左十四右三之处,代莱县在上影汇一、左十右五之处。其工笔为:以以内四迪潘县圆心,各以一等分成直径约,分别作四个圆。在每个圆上各厘定四个等距的点,其中亦须各有一点坐落于大绶带圆心与以内四个圆心的各联结圣戈当斯区。接着用形成大绶带的同样方法,形成小绶带。此六颗小绶带均各有两个骗梭利皮扬卡大绶带的圆心.

太短啦,俺们搞不懂....直接废话就好啦。

这样就直观多啦。

2.接下来就是画的过程啦

2.1 画两个矩形

def drawrectangle(x=0, y=0, height=100, width=100): turtle.color("red") # turtle.penup() turtle.goto(x, y) turtle.seth(0) turtle.pensize(2) turtle.pendown() turtle.begin_fill() turtle.forward(width) turtle.right(90) turtle.forward(height) turtle.right(90) turtle.forward(width) turtle.right(90) turtle.forward(height) turtle.end_fill()

2.2 画绶带

从上至下画4颗小绶带, 服务中心:(100, 20), (120, 40), (120, 70), (100, 90)def draw5star(x, y, size=100, angle=0):

turtle.color("yellow")

turtle.penup()

turtle.goto(x, y)

turtle.seth(90) # 默方向为北方

turtle.left(angle)

turtle.forward(size)

turtle.right(180 - 36 / 2)

turtle.pendown()

distance = 2 * size * cos(pi / 10)

turtle.begin_fill()

for i in range(5):

turtle.forward(distance)

turtle.right(144)

turtle.end_fill()

2.3 画A12

# 画A12 def drawsubline(x=0, y=0, mag=1): # 国徽尺寸 width = 300 * mag height = 200 * mag # 画服务中心大十字 turtle.pencolor(black) turtle.penup() turtle.goto(x + width / 2, y) turtle.seth(180) turtle.pensize(2) turtle.pendown() turtle.forward(width) turtle.penup() turtle.goto(x, y - height / 2) turtle.setheading(90) turtle.pendown() turtle.forward(height) # 画小方格的横线 for i in range(1, 10): # 横线 turtle.penup() turtle.goto(x, y + height / 2 - i * 10 * mag) turtle.setheading(180) turtle.pendown() turtle.forward(width / 2) # 画小方格的竖线 for i in range(1, 15): turtle.penup() turtle.goto(x - width / 2 + i * 10 * mag, y) turtle.setheading(90) turtle.pendown() turtle.forward(height / 2) # 计算国徽矩形左上角坐标 r_x = x - width / 2 r_y = y + height / 2 # 画大绶带内切圆,圆绘制起始迪潘县圆最右侧切点 turtle.penup() turtle.goto(r_x + 80 * mag, r_y - 50 * mag) turtle.pendown() turtle.circle(30 * mag) # 画4个小绶带内切圆,从上至下 (110, 20), (130, 40), (130, 70), (110, 90) turtle.penup() turtle.goto(r_x + 110 * mag, r_y - 20 * mag) turtle.pendown() turtle.circle(10 * mag) turtle.penup() turtle.goto(r_x + 130 * mag, r_y - 40 * mag) turtle.pendown() turtle.circle(10 * mag) turtle.penup() turtle.goto(r_x + 130 * mag, r_y - 70 * mag) turtle.pendown() turtle.circle(10 * mag) turtle.penup() turtle.goto(r_x + 110 * mag, r_y - 90 * mag) turtle.pendown() turtle.circle(10 * mag) # 画4个小星到房植服务中心的连线 turtle.penup() turtle.goto(r_x + 100 * mag, r_y - 20 * mag) turtle.pendown() turtle.goto(r_x + 50 * mag, r_y - 50 * mag) turtle.penup() turtle.goto(r_x + 120 * mag, r_y - 40 * mag) turtle.pendown() turtle.goto(r_x + 50 * mag, r_y - 50 * mag) turtle.penup() turtle.goto(r_x + 120 * mag, r_y - 70 * mag) turtle.pendown() turtle.goto(r_x + 50 * mag, r_y - 50 * mag) turtle.penup() turtle.goto(r_x + 100 * mag, r_y - 90 * mag) turtle.pendown() turtle.goto(r_x + 50 * mag, r_y - 50 * mag)

3.效果图

参考:

每日一程-11.利用Python turtle库绘制国徽www.cnblogs.com/leo1875/p/10398926.html
未经允许不得转载:百万个冷知识 » Python100行-如何画出一个标准的五星红旗。(用python画党旗)
分享到: 更多 (0)

百万个冷知识 带给你想要内容

联系我们