欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用Turtle模塊繪制五星紅旗代碼示例

 更新時間:2017年12月11日 08:53:07   投稿:mengwei  
這篇文章主要介紹了Python使用Turtle模塊繪制五星紅旗代碼示例,具有一定借鑒價值,需要的朋友可以參考下。

在Udacity上課時學(xué)到了python的turtle方法,這是一個很經(jīng)典的用來教小孩兒編程的圖形模塊,最早起源于logo語言。python本身內(nèi)置了這個模塊,其可視化的方法可以幫助小孩兒對編程的一些基本理念有所理解。

在作業(yè)提交的論壇里看到很多turtle畫出來的精美圖形,想不出什么要畫的東西,于是決定拿五星紅旗來練練手。

前期準(zhǔn)備

五星紅旗繪制參數(shù)

Turtle官方文檔

turtle的基本操作

# 初始化屏幕
window = turtle.Screen()
# 新建turtle對象實例
import turtle
aTurtle = turtle.Turtle()
# 海龜設(shè)置
aTurtle.hideturtle() # 隱藏箭頭
aTurtle.speed(10)  # 設(shè)置速度
# 前進(jìn)后退,左轉(zhuǎn)右轉(zhuǎn)
aTurtle.fd(100)  # 前進(jìn)100像素
aTurtle.right(90) # 右轉(zhuǎn)90°
aTurtle.back(100)
aTurtle.left(90)
# 填充顏色
aTurtle.begin_fill()
aTurtle.fillcolor('yellow')
DoSomethinghere()
aTurtle.end_fill()
# 抬起筆和放下筆,這樣進(jìn)行的操作不會留下痕跡
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角形,默認(rèn)為黃色
  args:
    aTurtle: turtle對象實例
    size: int類型,正多角形的邊長
    n: int類型,是幾角形  
    color: str, 圖形顏色,默認(rèn)不填色
  '''
  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):
  ''' 根據(jù)起始位置、結(jié)束位置和外接圓半徑畫五角星
  args:
    aTurtle: turtle對象實例
    start_pos: int的二元tuple,要畫的五角星的外接圓圓心
    end_pos: int的二元tuple,圓心指向的位置坐標(biāo)點
    radius: 五角星外接圓半徑
    color: str, 圖形顏色,默認(rèn)不填色  
  '''
  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: 五星紅旗的規(guī)格為30*20, times為倍數(shù),默認(rèn)大小為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') 
  # 點擊關(guān)閉窗口
  window.exitonclick()
if __name__ == '__main__':
    draw_5_star_flag()

結(jié)果:

總結(jié)

以上就是本文關(guān)于Python使用Turtle模塊繪制五星紅旗代碼示例的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • python如何讀寫csv數(shù)據(jù)

    python如何讀寫csv數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了python如何讀寫csv數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • python入門課程第二講之怎么運行Python

    python入門課程第二講之怎么運行Python

    這篇文章主要介紹了python入門課程第二講之怎么運行Python,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Python3 max()函數(shù)基礎(chǔ)用法

    Python3 max()函數(shù)基礎(chǔ)用法

    在本篇文章中我們給大家講述了關(guān)于Python3 max()函數(shù)的基本用法以及相關(guān)知識點內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-02-02
  • 解決pyinstaller打包exe可執(zhí)行文件后運行找不到pandas或者XXX模塊

    解決pyinstaller打包exe可執(zhí)行文件后運行找不到pandas或者XXX模塊

    這篇文章主要介紹了解決pyinstaller打包exe可執(zhí)行文件后運行找不到pandas或者XXX模塊問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 使用python實現(xiàn)tcp自動重連

    使用python實現(xiàn)tcp自動重連

    下面小編就為大家?guī)硪黄褂胮ython實現(xiàn)tcp自動重連實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。
    2017-07-07
  • mac在matplotlib中顯示中文的操作方法

    mac在matplotlib中顯示中文的操作方法

    這篇文章主要介紹了mac如何在matplotlib中顯示中文,本文分步驟給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • 詳解python tkinter包獲取本地絕對路徑(以獲取圖片并展示)

    詳解python tkinter包獲取本地絕對路徑(以獲取圖片并展示)

    這篇文章主要給大家介紹了關(guān)于python tkinter包獲取本地絕對路徑(以獲取圖片并展示)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 深入了解Python中的序列解包

    深入了解Python中的序列解包

    在Python中,序列解包(Sequence Unpacking)指的是將一個序列(或任何可迭代的對象)解包,并將得到的值存儲在一系列變量中,下面我們就來學(xué)習(xí)一下Python中序列解包的用法吧
    2023-10-10
  • Python實現(xiàn)批量讀取word中表格信息的方法

    Python實現(xiàn)批量讀取word中表格信息的方法

    這篇文章主要介紹了Python實現(xiàn)批量讀取word中表格信息的方法,可實現(xiàn)針對word文檔的讀取功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • 幾種實用的pythonic語法實例代碼

    幾種實用的pythonic語法實例代碼

    在我理解,Pythonic 就是很 Python 的 Python 代碼。下面這篇文章主要給大家分享介紹了幾種實用的pythonic語法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-02-02

最新評論