python使用turtle画五星红旗!
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画五星红旗!相关推荐
- Python使用turtle画五星红旗
前面我们已经学会画五角星,不妨让我们一起绘制一面五星红旗吧!!! 思路:1.首先需要导包,用Python自带的turtle包,直接导入 2.设置好画布大小 3.绘制五角星时注意每颗星的起始位置,旋转角 ...
- 用python 画炫酷的图并讲解-使用Python的turtle画炫酷图形
原标题:使用Python的turtle画炫酷图形 例子一: import turtle t = turtle.Pen() turtle.bgcolor("black") sides ...
- python中用turtle画爱心表白
python中用turtle画爱心表白 运行后的效果图: 下面的代码是在python3.7写的,代码有点长,但却语法简单易懂 代码如下: import turtle str = input('请输入表 ...
- python用turtle画月亮_使用Python的turtle画小猪乔治和哆啦 A 梦
本人是Python新人小白,欢迎各位大佬指正,本文介绍的是用Python的turtle画一只小猪乔治. 还有本人画画基础超级差= =没天赋,画参考度娘上的一个图片画的. 先上总代码,然后说说我写的思路 ...
- python画椭圆turtle_python之turtle画蚊香,python用turtle画圆弧,原理:利用turtl
python之turtle画蚊香,python用turtle画圆弧,原理:利用turtl 原理:利用turtle绘制圆形,并使圆半径逐步增加 代码如下:import turtleturtle.pens ...
- python画小猪乔治动画片全集_使用Python的turtle画小猪乔治和哆啦 A 梦!附源码!...
本人是Python新人小白,欢迎各位大佬指正,本文介绍的是用Python的turtle画一只小猪乔治. 还有本人画画基础超级差= =没天赋,画参考度娘上的一个图片画的. 先上总代码,然后说说我写的思路 ...
- 用Python的turtle画一只小猪乔治【刚学python两天,纪念一下】
本人是新人小白,欢迎各位大佬指正,本文介绍的是用Python的turtle画一只小猪乔治[手动比心 by zwx lvmm] [女朋友很喜欢小猪乔治,我在学习python,她说,那你会画小猪乔治了吗? ...
- 用Python的turtle画出beautiful四扇风车图
一.简单了解turtle 1.turtle是什么? 这里引用Python官方文档的片段: 海龟绘图 海龟绘图很适合用来引导孩子学习编程. 最初来自于 Wally Feurzeig, Seymour P ...
- 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 ...
最新文章
- Python3之redis使用
- LeetCode Implement Trie (Prefix Tree)(字典树)
- Premiere Pro CS4软件安装教程
- Sublime Text 2快捷键大全
- 3、Eternal框架-控制器
- workbench拓扑优化教程_workbenchds拓扑优化分析.ppt
- python vlookup 模糊_如何用python写excel中的vlookup函数?
- Bootstrap按钮组嵌套
- PHP添加网站版权信息,如何将版权和作者信息添加到用PHP创建的图像?
- 网络工程师中级--下午科目
- 咸鱼带你理解信号带宽与信道带宽
- 机器学习 Cohen s Kappa,Quadratic Weighted Kappa 详解
- mindmanager2021下载 最新版如何更新
- Python基础入门:函数--阿里云天池
- Pyhton计算一元二次方程的根
- iOS 添加自定义字体
- photoshop中怎么绘制虚线
- 2022引流新玩法,异业联盟打造商业闭环
- 包机制、访问修饰符、Jar包 java初学 面向对象五
- java aes ebc_Delphi XE2+标准AES加解密算法(AES/EBC,CBC/PKCS5Padding-base64)
热门文章
- 整理layUI初始化表格,监听等 + 表格拖曳(tableDnD插件)
- 11.22IG客户情绪报告: 黄金、原油、澳元、日元、欧元、英镑
- 【Android】程序包com.github.chrisbanes.photoview不存在
- 痴情不是罪过 忘情不是洒脱
- 宠物 java_java宠物练习
- Self-supervised Graph Neural Networks for Multi-behavior Recommendation-IJCAI 2022 读书笔记
- Flask系列教程(一)-----------入门
- sql 中or与in的查询效率对比
- 电脑任务栏桌面图标透明紊乱解决方法
- SIGPIPE信号详解