import turtle
from math import *# 绘制五角星, 默认为正五角星(一个顶点朝正北方)
# 五角星每个顶角的角度为 180/5 = 36度 或 pi/5
# (x, y): 五角星中心点坐标
# size: 中心到顶点的长度, 即外接圆的半径
# angle 旋转角度, 正五角星正北顶点 turtle.left 方式旋转到被绘制五角星的角度
def draw5star(x=0, y=0, size=100, angle=0, fillcolor='yellow', pencolor='yellow'):turtle.speed(0)turtle.shape('blank')turtle.color(pencolor, fillcolor)turtle.penup()# 定位到中心点正北方顶点(angle为0时的正北方)turtle.goto(x, y)turtle.setheading(90)turtle.left(angle)turtle.forward(size)turtle.right(180 - 36 / 2)turtle.pendown()# 一条直线上的两个顶点的距离distance = 2 * size * cos(pi / 10)# 开始绘制,对于 angle 为 0 的, 从正北方顶点开始turtle.begin_fill()for i in range(5):turtle.forward(distance)turtle.right(144)turtle.end_fill()# 画矩形
# (x,y) 矩形左上角坐标
def drawrectangle(x=0, y=0, height=100, width=100, fillcolor='red', pencolor='black'):turtle.speed(0)turtle.shape('blank')turtle.color(pencolor, fillcolor)turtle.penup()turtle.goto(x, y)turtle.setheading(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()# 画辅助线,方便判断
# (x,y) 国旗中心点坐标
# mag 国旗放大倍数
def drawsubline(x=0, y=0, mag=1):# 国旗尺寸width = 300 * magheight = 200 * mag# 画中心十字turtle.speed(0)turtle.shape('blank')turtle.pencolor('black')turtle.penup()turtle.goto(x + width / 2, y)turtle.setheading(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 / 2r_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)# 绘制五星红旗
# (x, y) 红旗中心点坐标, 默认为(0,0),即标准模式turtle绘图的中心起点。
# mag: 放大倍数, maganification
def drawflag(x=0, y=0, mag=1):# 国旗尺寸width = 300 * magheight = 200 * mag# 计算国旗矩形左上角坐标r_x = x - width / 2r_y = y + height / 2# 画国旗矩形drawrectangle(x=r_x, y=r_y, height=height, width=width)# 画最大的五角星draw5star(x=r_x + 50 * mag, y=r_y - 50 * mag, size=30 * mag)# draw5star(x=r_x+50*mag, y=r_y-50*mag, size=30*mag)# 从上至下画4颗小五角星, 中心:(100, 20), (120, 40), (120, 70), (100, 90)l_size = 10 * magdraw5star(x=r_x + 100 * mag, y=r_y - 20 * mag, size=l_size, angle=180 - atan(5 / 3) / pi * 180)draw5star(x=r_x + 120 * mag, y=r_y - 40 * mag, size=l_size, angle=180 - atan(7 / 1) / pi * 180)draw5star(x=r_x + 120 * mag, y=r_y - 70 * mag, size=l_size, angle=90 - atan(2 / 7) / pi * 180)draw5star(x=r_x + 100 * mag, y=r_y - 90 * mag, size=l_size, angle=90 - atan(4 / 5) / pi * 180)if __name__ == '__main__':m = eval(input("请输入红旗长度(长比宽为3:2):\n"))mag = m/300n = eval(input("是否要辅助线?(0为不显示辅助线,1为显示辅助线):\n"))if n == 0:drawflag(mag=mag)elif n == 1:drawflag(mag=mag)drawsubline(mag=mag)else:print("输入错误")exit()turtle.done()

python使用turtle画五星红旗!相关推荐

  1. Python使用turtle画五星红旗

    前面我们已经学会画五角星,不妨让我们一起绘制一面五星红旗吧!!! 思路:1.首先需要导包,用Python自带的turtle包,直接导入 2.设置好画布大小 3.绘制五角星时注意每颗星的起始位置,旋转角 ...

  2. 用python 画炫酷的图并讲解-使用Python的turtle画炫酷图形

    原标题:使用Python的turtle画炫酷图形 例子一: import turtle t = turtle.Pen() turtle.bgcolor("black") sides ...

  3. python中用turtle画爱心表白

    python中用turtle画爱心表白 运行后的效果图: 下面的代码是在python3.7写的,代码有点长,但却语法简单易懂 代码如下: import turtle str = input('请输入表 ...

  4. python用turtle画月亮_使用Python的turtle画小猪乔治和哆啦 A 梦

    本人是Python新人小白,欢迎各位大佬指正,本文介绍的是用Python的turtle画一只小猪乔治. 还有本人画画基础超级差= =没天赋,画参考度娘上的一个图片画的. 先上总代码,然后说说我写的思路 ...

  5. python画椭圆turtle_python之turtle画蚊香,python用turtle画圆弧,原理:利用turtl

    python之turtle画蚊香,python用turtle画圆弧,原理:利用turtl 原理:利用turtle绘制圆形,并使圆半径逐步增加 代码如下:import turtleturtle.pens ...

  6. python画小猪乔治动画片全集_使用Python的turtle画小猪乔治和哆啦 A 梦!附源码!...

    本人是Python新人小白,欢迎各位大佬指正,本文介绍的是用Python的turtle画一只小猪乔治. 还有本人画画基础超级差= =没天赋,画参考度娘上的一个图片画的. 先上总代码,然后说说我写的思路 ...

  7. 用Python的turtle画一只小猪乔治【刚学python两天,纪念一下】

    本人是新人小白,欢迎各位大佬指正,本文介绍的是用Python的turtle画一只小猪乔治[手动比心 by zwx lvmm] [女朋友很喜欢小猪乔治,我在学习python,她说,那你会画小猪乔治了吗? ...

  8. 用Python的turtle画出beautiful四扇风车图

    一.简单了解turtle 1.turtle是什么? 这里引用Python官方文档的片段: 海龟绘图 海龟绘图很适合用来引导孩子学习编程. 最初来自于 Wally Feurzeig, Seymour P ...

  9. python之Turtle 画星星和樱花

    python之Turtle 画星星和樱花 1. 樱花 1.1 基础版 1.1.1 基础版效果图 1.1.2 主要算法 1.1.3 完整代码 1.2 升级版 1.2.1 效果图 1.2.2 主要算法 1 ...

最新文章

  1. Python3之redis使用
  2. LeetCode Implement Trie (Prefix Tree)(字典树)
  3. Premiere Pro CS4软件安装教程
  4. Sublime Text 2快捷键大全
  5. 3、Eternal框架-控制器
  6. workbench拓扑优化教程_workbenchds拓扑优化分析.ppt
  7. python vlookup 模糊_如何用python写excel中的vlookup函数?
  8. Bootstrap按钮组嵌套
  9. PHP添加网站版权信息,如何将版权和作者信息添加到用PHP创建的图像?
  10. 网络工程师中级--下午科目
  11. 咸鱼带你理解信号带宽与信道带宽
  12. 机器学习 Cohen s Kappa,Quadratic Weighted Kappa 详解
  13. mindmanager2021下载 最新版如何更新
  14. Python基础入门:函数--阿里云天池
  15. Pyhton计算一元二次方程的根
  16. iOS 添加自定义字体
  17. photoshop中怎么绘制虚线
  18. 2022引流新玩法,异业联盟打造商业闭环
  19. 包机制、访问修饰符、Jar包 java初学 面向对象五
  20. java aes ebc_Delphi XE2+标准AES加解密算法(AES/EBC,CBC/PKCS5Padding-base64)

热门文章

  1. 整理layUI初始化表格,监听等 + 表格拖曳(tableDnD插件)
  2. 11.22IG客户情绪报告: 黄金、原油、澳元、日元、欧元、英镑
  3. 【Android】程序包com.github.chrisbanes.photoview不存在
  4. 痴情不是罪过 忘情不是洒脱
  5. 宠物 java_java宠物练习
  6. Self-supervised Graph Neural Networks for Multi-behavior Recommendation-IJCAI 2022 读书笔记
  7. Flask系列教程(一)-----------入门
  8. sql 中or与in的查询效率对比
  9. 电脑任务栏桌面图标透明紊乱解决方法
  10. SIGPIPE信号详解