python-利用turtle打印五星红旗

mac:10.15.3
pycharm: 2019.3
python:3.7
需要安装turtle 和 time 模块

import turtle  # 画图的模块
import time  # 时间控制模块


class flag():

    def set_flag(self):
        turtle.setup(width=0.9, height=0.34)  # 设置turtle 画布比例,也可以输入整数,按像素设置
        turtle.bgcolor("red")  # 设置底色为红色
        turtle.color("yellow")  # 设置画笔填充色
        turtle.speed(10)  # 设置绘画速度

    def print_star(self, location, heading, line, angle):
        turtle.begin_fill()  # 准备开始填充颜色
        turtle.up()  # 可以理解为抬起画笔,否则会一直记录画笔
        turtle.goto(location[0], location[1])  # 移动画笔到该位置
        turtle.setheading(heading)  # 设置起笔角度
        turtle.down()  # 下笔开始画
        n = 0
        while n < 5:
            turtle.forward(line)  # 画多长的线
            turtle.left(angle[0])  # 转动角度
            turtle.forward(line)  
            turtle.right(angle[1])
            n += 1
        turtle.end_fill()  # 完成填充
        time.sleep(1)  # 暂停时间

    def star_size(self):
        lines = [94, 30]  # [主星, 副星]边长长度
        location = [[-555, 260], [-205, 385], [-175, 260], [-175, 145], [-205, 85]]  # 五颗星星的位置 
        heading = [0, 265, 27, 2, 265]  # 起笔角度
        angle = [72, 144]  # 转动角度
        x = 0
        y = 0
        while x < 5:
            line = lines[0] if x == 0 else lines[1]
            # if x == 0:
            #     line = lines[0]
            # else:
            #     line = lines[1]
            self.print_star(location[x], heading[y], line, angle)  # 执行打印
            x += 1
            y += 1
        

def main():
    a = flag()
    a.set_flag()
    a.star_size()


if __name__ == '__main__':
    main()

你可能感兴趣的:(习题,python)