【Python绘图】绘制Flag

编程入门 行业动态 更新时间:2024-10-13 06:20:28

【<a href=https://www.elefans.com/category/jswz/34/1770869.html style=Python绘图】绘制Flag"/>

【Python绘图】绘制Flag

🌈据说,看我文章时 关注、点赞、收藏帅哥美女们 心情都会不自觉的好起来。

前言:
🧡作者简介:大家好我是 user_from_future ,意思是 “ 来自未来的用户 ” ,寓意着未来的自己一定很棒~
✨个人主页:点我直达,在这里肯定能找到你想要的~
👍专栏介绍:Python绘图 ,一个专注于分享绘图案例与教学的专栏~

专栏文章直链:
【Python绘图】绘图常见的构成元素3
【Python绘图】绘图常见的构成元素2
【Python绘图】绘图常见的构成元素1
【Python绘图】学习绘图第一步,先要知道哪些操作是常用的
【Python绘图】朋友过生日不知道送什么?免费的蛋糕送给他

Python绘制Flag

  • Python绘制Flag

Python绘制Flag

本篇文章教你使用turtle动态绘制一个好看的Flag,使用网上祖传的使用网格线定义坐标绘画,对于实现就不做过多解释了,看注释就行:

import math
import turtle# 窗口属性设置
side = 40  # 网格单位边长为40(可变参数)
width = 30  # 网格的宽为30个单位长度(非可变参数)
height = 20  # 网格的高为20个单位长度(非可变参数)
turtle.speed(10)  # 调整绘图速度 [0-10] 整数
turtle.hideturtle()  # 隐藏海龟图标
turtle.title('五星红旗迎风飘扬~')  # 海龟画图的标题
turtle.setup(width * side, height * side)# 五角星处网格线绘制
turtle.pencolor('#F00')
# 五角星处网格线绘制(横线)
for row in range(height // 2 + 1):turtle.up()turtle.goto(-1 * width * side // 2, height * side // 2 - row * side)turtle.pendown()turtle.forward(width * side // 2)
# 五角星处网格线绘制(竖线)
turtle.right(90)
for col in range(width // 2 + 1):turtle.penup()turtle.goto(col * side - width * side // 2, height * side // 2)turtle.pendown()turtle.forward(height * side // 2)# 绘制五颗黄色的五角星
turtle.speed(5)
turtle.left(180)
turtle.color('#FF0', '#FF0')  # turtle.color(pencolor, fillcolor)
# 五角星外接圆圆心、半径、旋转角数据
stars = {(-10, 5): (3, 0),(-5, 8): (1, -math.degrees(math.atan(3 / 5)) - 18),(-3, 6): (1, -math.degrees(math.atan(1 / 7)) - 18),(-3, 3): (1, math.degrees(math.atan(2 / 7)) - 18),(-5, 1): (1, math.degrees(math.atan(4 / 5)) - 18),
}def draw_star(location, radius, rotate):"""按外接圆圆心和半径绘制圆内正五角星。:param location: 圆心位置:param radius: 半径长度:param rotate: 中心顺时针旋转"""length = 2 * radius * side * math.cos(math.pi / 10)  # 计算任意两顶点间的距离turtle.penup()turtle.right(rotate)  # 初始中心旋转(保证有一角尖指向大星中心点)turtle.goto(location[0] * side, location[1] * side)turtle.forward(radius * side)  # 此处到达最上方顶点turtle.right(180 - 18)  # 倾斜方便绘制第一条直线turtle.pendown()turtle.begin_fill()for angle in range(5):turtle.forward(length)turtle.right(180 - 36)turtle.end_fill()turtle.left(18 + rotate)  # 恢复到垂直向上的方向for star in stars:draw_star(star, *stars[star])# 填充背景颜色红色
turtle.bgcolor('#F00')
turtle.done()

绘制结果(真正结果没有白色网格):

更多推荐

【Python绘图】绘制Flag

本文发布于:2024-03-05 20:14:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1713290.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Python   Flag

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!