在Udacity上课时学到了python的turtle方法,这是一个很经典的用来教小孩儿编程的图形模块,最早起源于logo语言。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()

结果:

总结

以上就是本文关于Python使用Turtle模块绘制五星红旗代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

python画五角星代码_Python使用Turtle模块绘制五星红旗代码示例相关推荐

  1. 用python函数画德国国旗代码_Python使用Turtle模块绘制五星红旗代码示例

    在Udacity上课时学到了python的turtle方法,这是一个很经典的用来教小孩儿编程的图形模块,最早起源于logo语言.python本身内置了这个模块,其可视化的方法可以帮助小孩儿对编程的一些 ...

  2. python turtle画彩虹的代码_Python利用turtle库绘制彩虹代码示例

    语言:Python IDE:Python.IDE 需求 做出彩虹效果 颜色空间 RGB模型:光的三原色,共同决定色相 HSB/HSV模型:H色彩,S深浅,B饱和度,H决定色相 需要将HSB模型转换为R ...

  3. python用turtle画月亮的代码_Python利用turtle库绘制彩虹代码示例

    语言:Python IDE:Python.IDE 需求 做出彩虹效果 颜色空间 RGB模型:光的三原色,共同决定色相 HSB/HSV模型:H色彩,S深浅,B饱和度,H决定色相 需要将HSB模型转换为R ...

  4. python画棒棒糖程序_Python使用turtle库绘制小猪佩奇(实例代码)

    turtle(海龟)是Python重要的标准库之一,它能够进行基本的图形绘制.turtle图形绘制的概念诞生于1969年,成功应用于LOGO编程语言. turtle库绘制图形有一个基本框架:一个小海龟 ...

  5. 如何用python画七彩蟒蛇_Python实现七彩蟒蛇绘制实例代码

    本文主要研究的是Python编程turtle的实例,绘制一个七彩蟒蛇..具体如下. 第2周的课后练习里,有一道题目,要求修改"蟒蛇绘制"程序,对Python 蟒蛇的每个部分采用不同 ...

  6. python画正切函数_python的pygal模块绘制反正切函数图像方法

    python的pygal模块绘制反正切函数图像方法 python是一个很有趣的语言,可以在命令行窗口运行.python中有很多功能强大的模块,这篇经验告诉你,如何使用python的pygal模块绘制反 ...

  7. python画棒棒糖程序_python之turtle简单绘制学习

    一.方法 1.forward() | fd():向前移动指定的距离.参数:一个数字(integer or float)). turtle.forward(25) 2.backward() | bk() ...

  8. python用turtle画彩虹_Python利用turtle库绘制彩虹代码示例

    语言:Python IDE:Python.IDE 需求 做出彩虹效果 颜色空间 RGB模型:光的三原色,共同决定色相 HSB/HSV模型:H色彩,S深浅,B饱和度,H决定色相 需要将HSB模型转换为R ...

  9. python turtle库画七彩蟒蛇_Python实现七彩蟒蛇绘制实例代码

    本文主要研究的是Python编程turtle的实例,绘制一个七彩蟒蛇..具体如下. 第2周的课后练习里,有一道题目,要求修改"蟒蛇绘制"程序,对Python 蟒蛇的每个部分采用不同 ...

最新文章

  1. CNN卷积神经网络可视化:可交互有细节,卷积ReLU池化都一目了然
  2. SSH 远程连接原理及故障排错详解
  3. Exchange 2007迁移Exchange 2010应该注意的13件事
  4. Minor GC和Full GC
  5. 购物商城框架java_基于jsp的购物商城-JavaEE实现购物商城 - java项目源码
  6. php多功能引流工具箱源码
  7. android viewholder里面不执行控件_ViewHolder的MVVM实现
  8. 2010年最新网络推广方式总结
  9. 从面向对象的api中识别软件组件(论文翻译)
  10. Java集合基础练习题
  11. catia设计树_CATIA目录树节点管理 | 坐倚北风
  12. [noip2011]铺地毯(carpet)解题报告
  13. 二分专项训练(二分搜索+二分答案的十贰道例题及解析
  14. 图像和视频的主要格式与编码格式。
  15. Mysql报错 Error querying database. Cause java.sql.SQLSyntaxErrorException
  16. STM32F103 FPGA架构多轴运动控制器 四轴运动控制器硬件方案
  17. html设置径向渐变色,【前端Talkking】CSS系列-css3之径向渐变初探
  18. C语言输入年份显示日历,输入年份并输出当年的日历
  19. 查看Git本地安装位置
  20. STM32H743ZI+MPU+LWIP ping解决

热门文章

  1. Qt-5种布局控件详解
  2. java 接口不是不能new吗?- java:使用匿名类直接new接口
  3. C++数组与指针概念
  4. 获取treeview中当前鼠标所指的节点treenode 。
  5. php xml 格式化,php简单处理XML数据的方法示例
  6. QT多国语言加载qm文件不起效果问题总结
  7. Android开发之6.0动态权限工具类(高德地图官方扣出来的)附源码
  8. unlegal android,cordova-plugin-baidumaplocation百度地图定位Cordova插件
  9. Android 进阶 教你打造 Android 中的 IOC 框架 【ViewInject】 (下)
  10. MailCore2 SDK API