用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,一经查实,立即删除!

相关文章

Java学习笔记——函数式接口

一、函数式接口概述 函数式接口:有且仅有一个抽象方法的接口。 Java中的函数式编程体现就是Lambda表达式,所以函数式接口就是可以适用于 Lambda表达式使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的 Lambda表达式才能顺利地进行推…

windows快捷键

F1 显示当前程序或者windows的帮助内容。 F2 当你选中一个文件的话,这意味着“重命名” F3 当你在桌面上的时候是打开“查找:所有文件” 对话框 F10或ALT 激活当前程序的菜单栏 windows键或CTRLESC 打开开始菜单 CTRLALTDELETE 在win9x中打开关闭程序对话…

最简单的拨号方案

使用模式匹配和通道变量可以构建一个最简单的最通用的拨号方案。 如下: exten > _XXXX,1,Dial(SIP/${EXTEN}) exten > _XXXX,2,Hangup() 模式匹配规则: 模式总是用一个下划线 _开始,它告诉 Asterisk 要做模式匹配,这不是…

tortoisegit图标消失_TortoiseGit文件夹和文件图标不显示解决方法

今天下载一个demo导入之后发现一个问题,提示导入的R包只有系统默认的 没有项目的,可以看下图 这种情况出现呢不多,但是出现了我就记录下,这个先看看R文件是不是还在 点击Gen包 查看 看看R文件是不是还在,打开一看果然不…

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

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

Java学习笔记——Stream流

一、Stream流的生成方式 1、collection集合可以用默认方法stream生成流。 如 ArrayList<String> list new ArrayList<String>();list.stream().forEach(); 2、Map集合间接生成 3、数组通过Stream接口的静态方法of(T... values)生成流。二、Stream流的中间操作方法…

Excel VBA遍历文件

休息日&#xff0c;无聊的上Excel Home看看有啥东东可学习&#xff0c;有啥问题能帮帮忙。看到很多帖子都是求助遍历特定文件夹下文件的实现方法。有朋友说03版Excel有FileSearch对象可以遍历文件夹下文件&#xff0c;07版中没有了FileSearch对象&#xff0c;不知如何遍历文件。…

C++中的explicit关键字

在C程序中很少有人去使用explicit关键字&#xff0c;不可否认&#xff0c;在平时的实践中确实很少能用的上。再说C的功能强大&#xff0c;往往一个问题可以利用好几种C特性去解决。但稍微留心一下就会发现现有的MFC库或者C标准库中的相关类声明中explicit出现的频率是很高的。了…

pline加点lisp_用Autolisp 在AutoCAD中实现多种曲线的绘制

用Autolisp 在AutoCAD中实现多种曲线的绘制一、引言&#xff1a;AutoCAD自1982年由Autodesk公司推出以来&#xff0c;经历了20年的发展更新&#xff0c;目前&#xff0c;已深入到包括机械、建筑、服装、航天航空、地质气象等等的众多领域中。AutoCAD已成为众多工程设计人员的首…

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

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

MySQL——基本配置

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

iphone win7无法识别_win7系统电脑不能识别iphone苹果设备的解决方法

win7系统使用久了&#xff0c;好多网友反馈说win7系统电脑不能识别iphone苹果设备的问题&#xff0c;非常不方便。有什么办法可以永久解决win7系统电脑不能识别iphone苹果设备的问题&#xff0c;面对win7系统电脑不能识别iphone苹果设备故障问题&#xff0c;我们只需要1)你的苹…

SOCKET bind INADDR_LOOPBACK和INADDR_ANY的区别

今天写程序时候&#xff0c;服务器端启动了&#xff0c;然后客户端总是连接不上&#xff0c;connect返回错误号是10061&#xff0c;服务器积极拒绝请求。 用telnet连接一下端口&#xff0c;发现服务端服务没有开启&#xff0c;但是我程序是启动的&#xff0c;用netstat -a 命令…

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

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

hdu 2149 巴什博弈

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

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

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

c_str()

1.string类成员函数c_str()的原型: const char *c_str()const;//返回一个以null终止的c字符串 2.c_str()函数返回一个指向正规c字符串的指针,内容和string类的本身对象是一样的,通过string类的c_str()函数能够把string对象转换成c中的字符串的样式; c_str()函数返回一个指向正规…

45个极具冲击力的WordPress摄影网站模板

原文地址&#xff1a;http://www.goodfav.com/zh/wordpress-photography-website-templates-3577.html 互联网为摄影师和有创意的人想向世界展示自己最好的作品提供了最好的平台。你可以整合社会化媒体可以分享你的世界各地的图片。很多人都会认为&#xff0c;美丽的图画应该有…

python生成多个列表_python生成多个只含0,1元素的随机数组或列表(代码)

python生成多个只含0,1元素的随机数组或列表&#xff08;代码&#xff09; >>> import numpy as np >>> myarray np.random.randint(0,2,10)输出只含0,1元素的一维数组,长度为10 >>> myarray array([1, 1, 1, 0, 1, 0, 0, 1, 1, 0]) >>> m…

Java学习笔记——反射

1、反射概述 Java反射机制&#xff1a;是指在运行时去获取一个类的变量和方法信息。然后通过获取到的信息来创建对象&#xff0c;调用方法的一种机制。由于这种动态性&#xff0c;可以极大地增强程序的灵活性。2、获取Class类的对象 我们要想通过反射去使用一个类&#xff0c…