如何用Python画澳大利亚国旗 | 您所在的位置:网站首页 › 如何用python画国旗 › 如何用Python画澳大利亚国旗 |
把整个国旗换成直角坐标系。 在Python中绘制标准国旗并不简单,我们采用的方法在数学上称为解析法。把整个国旗换成直角坐标系,中心坐标为(0,0)。每个小格边长20,则国旗左吵氏判上角坐标为(-300,200)、国旗长600,高400。Turtle是小海龟绘图库,Math是数学库,要用到里面的三角函核旁数和反三角函数,以及圆周率pi值。 Python是一种解升改释型、面向对象、动态数据类型的高级程序设计语言。 Python于1989年底发明,第一个公开发行版发行于1991年。 # python6.6import turtle def 好物test(): # 加纳共和国国旗呈长方形,长与宽之比为3∶2。 # 自上而下由红、黄、脊李绿三个平行相等的横长方形组成,黄色部分中间是一颗黑色五角星。 flag_h = 300 flag_w = 450 star_h = flag_h/3 turtle.pensize(2) turtle.speed(5) turtle.hideturtle() def draw_rectangle(color): turtle.pencolor(color) turtle.fillcolor(color) turtle.pendown() turtle.begin_fill() turtle.forward(flag_w) turtle.right(90) turtle.forward(star_h) turtle.right(90) turtle.forward(flag_w) turtle.right(90) turtle.forward(star_h) turtle.end_fill() turtle.penup() turtle.back(star_h) turtle.right(90) turtle.penup() turtle.goto(-flag_w 友野液/ 2, flag_h / 2) draw_rectangle("red") draw_rectangle("yellow") draw_rectangle("green") # 五角星 turtle.penup() turtle.goto(0, star_h/2) turtle.pencolor("black") turtle.fillcolor("black") turtle.right(90-18) turtle.pendown() turtle.begin_fill() for i in range(5): turtle.forward(star_h) turtle.right(180-36) turtle.end_fill() turtle.done() if __name__ == "__main__": test() import turtle //导入模块import time import os def draw_square(org_x, org_y, x, y): //定义红旗绘制函数 turtle.setpos(org_x, org_y) //定义画笔初始位置 turtle.color('red', 'red') //颜色 turtle.begin_fill() //开始绘制 turtle.fd(x) //绘制偏转方向和角度 turtle.lt(90) turtle.fd(y) turtle.lt(90) turtle.fd(x) turtle.lt(90) turtle.fd(y) turtle.end_fill() //绘制结束 def draw_star(center_x, center_y, radius): //定义星星绘制函数 print(center_x, center_y) //显示位置 turtle.pencolor('black') //画笔轨迹颜色 turtle.setpos(center_x, center_y) //友键中心点位置 pt1 = turtle.pos() //偏转角度计算 turtle.circle(-radius, 360 / 5) pt2 = turtle.pos() turtle.circle(-radius, 360 / 5) pt3 = turtle.pos() turtle.circle(-radius, 360 / 5) pt4 = turtle.pos() turtle.circle(-radius, 360 / 5) pt5 = turtle.pos() turtle.color('yellow', 'yellow') //好告巧星星颜色 turtle.begin_fill() //开是绘制 turtle.goto(pt3) turtle.goto(pt1) turtle.goto(pt4) turtle.goto(pt2) turtle.goto(pt5) turtle.end_fill() //绘制结束 print(turtle.pos()) turtle.pu() //隐藏画笔轨迹 draw_square(-320, -260, 660, 440) //友碧绘制红旗 star_part_x = -320 //自定义星星大小等属性 star_part_y = -260 + 440 star_part_s = 660 / 30 center_x, center_y = star_part_x + star_part_s * 5, star_part_y - star_part_s * 5 //计算星星中心点位置 turtle.setpos(center_x, center_y) turtle.lt(90) draw_star(star_part_x + star_part_s * 5, star_part_y - star_part_s * 2, star_part_s * 3) //绘制星星 turtle.goto(star_part_x + star_part_s * 10, star_part_y - star_part_s * 2)//同上 turtle.lt(round(turtle.towards(center_x, center_y)) - turtle.heading()) turtle.fd(star_part_s) turtle.rt(90) draw_star(turtle.xcor(), turtle.ycor(), star_part_s) turtle.goto(star_part_x + star_part_s * 12, star_part_y - star_part_s * 4) turtle.lt(round(turtle.towards(center_x, center_y)) - turtle.heading()) turtle.fd(star_part_s) turtle.rt(90) draw_star(turtle.xcor(), turtle.ycor(), star_part_s) turtle.goto(star_part_x + star_part_s * 12, star_part_y - star_part_s * 7) turtle.lt(round(turtle.towards(center_x, center_y)) - turtle.heading()) turtle.fd(star_part_s) turtle.rt(90) draw_star(turtle.xcor(), turtle.ycor(), star_part_s) turtle.goto(star_part_x + star_part_s * 10, star_part_y - star_part_s * 9) turtle.lt(round(turtle.towards(center_x, center_y)) - turtle.heading()) turtle.fd(star_part_s) turtle.rt(90) draw_star(turtle.xcor(), turtle.ycor(), star_part_s) turtle.ht() time.sleep(5) //设置挂起时间 os._exit(1) 欢迎分享,转载请注明来源:内存溢出 原文地址:https://outofmemory.cn/yw/12277033.html |
CopyRight 2018-2019 实验室设备网 版权所有 |