用python画国旗的程序_用Python的Turtle模块绘制五星红旗

Turtle官方文档

turtle的基本操作

# 初始化屏幕

window = turtle.Screen()

# 新建turtle对象实例

import turtle

aTurtle = turtle.Turtle()

# 海龟设置

aTurtle.hideturtle() # 隐藏箭头

aTurtle.speed(10) # 设置速度

# 前进后退,左转右转

aTurtle.fd(100) # 前进100像素

aTurtle.right(90) # 右转90°

aTurtle.back(100)

aTurtle.left(90)

# 填充颜色

aTurtle.begin_fill()

aTurtle.fillcolor('yellow')

DoSomethinghere()

aTurtle.end_fill()

# 抬起笔和放下笔,这样进行的操作不会留下痕迹

aTurtle.penup()

aTurtle.goto(start_pos)

aTurtle.fd(radius)

aTurtle.pendown()

绘制五星红旗代码

github地址:https://gist.github.com/dc11287081ee67075da8

#!/usr/bin/env python

# -*- coding: utf-8 –*-

''' 对于turtle类的一些封装方法,包括画正多边形,正多角形和五星红旗。'''

__author__ = 'Hu Wenchao'

import turtle

import math

def draw_polygon(aTurtle, size=50, n=3):

''' 绘制正多边形

args:

aTurtle: turtle对象实例

size: int类型,正多边形的边长

n: int类型,是几边形

'''

for i in xrange(n):

aTurtle.forward(size)

aTurtle.left(360.0/n)

def draw_n_angle(aTurtle, size=50, num=5, color=None):

''' 绘制正n角形,默认为黄色

args:

aTurtle: turtle对象实例

size: int类型,正多角形的边长

n: int类型,是几角形

color: str, 图形颜色,默认不填色

'''

if color:

aTurtle.begin_fill()

aTurtle.fillcolor(color)

for i in xrange(num):

aTurtle.forward(size)

aTurtle.left(360.0/num)

aTurtle.forward(size)

aTurtle.right(2*360.0/num)

if color:

aTurtle.end_fill()

def draw_5_angle(aTurtle=None, start_pos=(0,0), end_pos=(0,10), radius=100, color=None):

''' 根据起始位置、结束位置和外接圆半径画五角星

args:

aTurtle: turtle对象实例

start_pos: int的二元tuple,要画的五角星的外接圆圆心

end_pos: int的二元tuple,圆心指向的位置坐标点

radius: 五角星外接圆半径

color: str, 图形颜色,默认不填色

'''

aTurtle = aTurtle or turtle.Turtle()

size = radius * math.sin(math.pi/5)/math.sin(math.pi*2/5)

aTurtle.left(math.degrees(math.atan2(end_pos[1]-start_pos[1], end_pos[0]-start_pos[0])))

aTurtle.penup()

aTurtle.goto(start_pos)

aTurtle.fd(radius)

aTurtle.pendown()

aTurtle.right(math.degrees(math.pi*9/10))

draw_n_angle(aTurtle, size, 5, color)

def draw_5_star_flag(times=20.0):

''' 绘制五星红旗

args:

times: 五星红旗的规格为30*20, times为倍数,默认大小为10倍, 即300*200

'''

width, height = 30*times, 20*times

# 初始化屏幕和海龟

window = turtle.Screen()

aTurtle = turtle.Turtle()

aTurtle.hideturtle()

aTurtle.speed(10)

# 画红旗

aTurtle.penup()

aTurtle.goto(-width/2, height/2)

aTurtle.pendown()

aTurtle.begin_fill()

aTurtle.fillcolor('red')

aTurtle.fd(width)

aTurtle.right(90)

aTurtle.fd(height)

aTurtle.right(90)

aTurtle.fd(width)

aTurtle.right(90)

aTurtle.fd(height)

aTurtle.right(90)

aTurtle.end_fill()

# 画大星星

draw_5_angle(aTurtle, start_pos=(-10*times, 5*times), end_pos=(-10*times, 8*times), radius=3*times, color='yellow')

# 画四个小星星

stars_start_pos = [(-5, 8), (-3, 6), (-3, 3), (-5, 1)]

for pos in stars_start_pos:

draw_5_angle(aTurtle, start_pos=(pos[0]*times, pos[1]*times), end_pos=(-10*times, 5*times), radius=1*times, color='yellow')

# 点击关闭窗口

window.exitonclick()

if __name__ == '__main__':

draw_5_star_flag()

效果图

1415010440653.png?resizeSmall&width=832

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433716.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

丰田pcs可以关闭吗_丰田新款卡罗拉变化这么大 让老车主陷入沉思

【太平洋汽车网 导购频道】小胖是一名95后的汽车编辑,年纪轻轻又从事汽车编辑这一岗位,大家可能会觉得他肯定是一位充满热血、喜欢驾驶、热爱汽车的年轻人,那如果我告诉你小胖的座驾是一辆老卡罗拉(询底价|查参配),你还会觉得小胖…

python从小白到大牛pdf 下载 资源共享_Kotlin从小白到大牛 (关东升著) 中文pdf高清版[12MB]...

本书是一本Kotlin语言学习立体教程,主要内容包括:Kotlin语法基础、Kotlin编码规范、数据类型、字符串、运算符、程序流程控制、函数、面向对象基础、继承与多态、抽象类与接口、高阶函数、Lambda表达式、数组、集合、函数式编程API、异常处理、线程、协程…

MySQL——基本配置

一、新建配置文件 在MySQL的安装目录下D:\Mysql\mysql-8.0.28-winx64\bin中新建一个文本文件,文件内容如下: [mysql] default-character-setutf8[mysqld] character-set-serverutf8 default-storage-engineINNODB sql_modeSTRICT_TRANS_TABLES,NO_ZERO_…

在mac上用文本编辑器写python_Mac系统Python解释器、PyCharm编辑器安装及使用方法详解...

『环境配置』- 工欲善其事,必先利其器 视频讲解教程:[Mac系统Python开发环境配置教程详解(Python技术客栈)](https://www.bilibili.com/video/av80761677)【开发环境配置】Mac系统Python开发环境配置教程详解(Python技…

hdu 2149 巴什博弈

http://acm.hdu.edu.cn/showproblem.php?pid2149 分析:就是巴什博弈的概念。 题目要求:对于每组数据,在一行里按递增的顺序输出Lele第一次可以加的价。两个数据之间用空格隔开。如果Lele在第一次无论如何出价都无法买到这块土地,…

MySQL——数据库和表的增删改查

1、DDL操作数据库 ①查询 SHOW DATABASES;②创建 创建数据库 CREATE DATABASE 数据库名称; 创建数据库(判断,如果则创建) CREATE DATABASE IF NOT EXISTS 数据库名称;③删除 删除数据库 DROP DATABASE 数据库名称; 删除数据库(判断,如果存在则删除) DRO…

pc模式 华为mate30_号称“重构想象”的华为Mate30系列,到底有多颠覆?一睹为快...

9月19日迎来了华为全球发布会,和9月11日的苹果新品发布会时间挨得非常近,大家感受到了什么吗?华为Mate30系列于北京时间9月19日晚上8点在慕尼黑正式亮相了,以“重构想象”为主题,发布了4款新机:Mate30、Mat…

python数据分析师书籍_如何自学成为数据分析师

展开全部 第1本《谁说菜2113鸟不会数据5261分析入门篇》 很有趣的数据分析书!基本看过就能明白4102,以小说的1653形式讲解,很有代入感。包含了数据分析的结构化思维、数据处理技巧、数据展现的技术,很能帮我们提升职场竞争能力。找…

Java进阶07 嵌套类

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 到现在为止,我们都是在Java文件中直接定义类。这样的类出现在包(package)的级别上。Java允许类的嵌套定义。 这里将讲解如何在一个类…

MySQL笔记——DQL查询数据

DQL查询包括以下这些内容: • 基础查询 • 条件查询(WHERE) • 分组查询(GROUP BY) • 排序查询(ORDER BY) • 分页查询(LIMIT)(一)、基础查询 1、查询多个字段 SELECT 字段列表 FROM 表名; SELECT * FROM 表名; 当前表中数据如下: 2、去除重复记录 …

c++两个vector合并_数据结构——算法初步(4)——合并排序算法

从之前的学习可以看到,对大型vectory要求的排序,选择排序算法显然不符合要求,因为运行时间与输入问题规模大小的平方成比例增加,对于以线性顺序处理向量的元素的大多数排序算法也是如此。 所以要采用不同的方法来开发…

asterisk 互联

如上图所示,两个sip客户端分别注册在A,B两个asterisk服务器下,让A和B通过各自的asterisk服务器来相互通信。 xlite A的账号为2001,xlite B的账号为5001 asterisk A的sip.conf如下配置: [general] contextunauthenticated allow…

[活动通知]Nanjing GDG 2013年4月活动

致各位亲爱的 Google 技术爱好者 很高兴的通知各位朋友,Nanjing GDG 将在本周日 (04/21) 举办我们 Nanjing GDG 的 4月份活动,热烈欢迎大家报名参加。 主题:利用开放社区和代码库来构建 Android 应用 时间: 4月21 日 (周日) 下午 …

MySQL笔记——外键约束和表关系(一对一,多对一,多对多)

一、外键约束 概念:外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性。语法:(1)添加约束-- 创建表是添加外键约束CREATE TABLE 表名(列名 数据类型,…[CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REF…

仿个人税务 app html5_【注意】你下载的可能是个假的个税App

新个税法从1月初开始实施。国家税务总局推出“个人所得税”APP,方便纳税人线上填报资料进行专项抵扣。几天来,这款APP的下载量和注册量大幅增长。随之而来的是,很多商业公司制作的各类“个税”APP也成为热门。这其中有不少纯属蹭热点&#xf…

MySQL笔记——多表查询

多表查询不能使用 SELECT * from emp, dept; 会产生笛卡尔积。 笛卡尔积,有A,B两个集合,A中有5条信息,B中有4条信息,那么查询结果就是5*420条一、内连接查询 -- 隐式内连接SELECT 字段列表 FROM 表1,表2,… WHERE 条件…

遇见王沥川的人生感悟_23岁酱油泡饭默默无闻,31岁逆袭人生,王彦霖有何魅力?...

文/小白说娱S姐 原创精品,请勿转载如果兜里只剩下1块钱,生活所迫你会怎样过?王彦霖23岁刚毕业熬过了1元危机,他永远都不会想到当年咬牙坚持熬成就了如今的综艺诸葛。《元气满满的哥哥》连播六期多次排名第一,成为芒果台…

antd vue form 手动校验_参与《开课吧》vue训练营笔记(Day1)

大神说的目标:Vue 挑战20k组件间通信component 官网 详解组件间的传递方式:父传子 直接属性传递子传父 this.$emit 时间传递兄弟组件 利用父组件搭桥组件和子孙 provide / inject子孙 -> 祖先 this.$dispatch 或provide 获取组件元素实例$listeners $…

MySQL笔记——打开日志

在my.ini文件中输入如下命令:log_outputFILE general_logon general_log_file"D:\\SoftwareTools\\Mysql\\mysqllog\\mysql.log" slow_query_logon long_query_time 2 slow_query_log_file"D:\\SoftwareTools\\Mysql\\mysqllog\\mysql_slow.log"…

链表怎么输出最后一个元素无空格_剑指offer系列----从尾到头打印链表

从尾到头打印链表信息卡片时间:2020-03-23题目:从尾到头打印链表tag:list题目描述输入一个链表,按链表从尾到头的顺序返回一个 ArrayList。01调用 reverse 函数解题思路这是一种简单粗暴的解法。先遍历一遍链表,在遍历…