如何用Python画澳大利亚国旗

如何用Python画澳大利亚国旗,第1张

把整个国旗换成直角坐标系。

在Python中绘制标准国旗并不简单,我们采用的方法在数学上称为解析法。把整个国旗换成直角坐标系,中心坐标为(0,0)。每个小格边长20,则国旗左吵氏判上角坐标为(-300,200)、国旗长600,高400。Turtle是小海龟绘图库,Math是数学库,要用到里面的三角函核旁数和反三角函数,以及圆周率pi值。

Python是一种解升改释型、面向对象、动态数据类型的高级程序设计语言。 Python于1989年底发明,第一个公开发行版发行于1991年。

# python6.6

import 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)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12277033.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存