1. 程式人生 > 程式設計 >使用Python的turtle模組畫國旗

使用Python的turtle模組畫國旗

Python的turtle模組畫國旗主要用到兩個函式:draw_rentangle和draw_star。

至於函式的呼叫就和我們學的C,C++是一樣的。對於turtle畫國旗的程式中,首先是查詢國旗的畫法,才能用程式實現。自己在實現的過程中主要是對turtle.circle()沒有準確掌握,所以花了一些不必要的時間。turtle.circle畫弧時,海龜(turtle)的方向就是弧的切線方向,也就是說turtle的垂直方向就是圓心在的直線上,給定引數radius就可以畫了,程式中第二注意的地方就是小五角星和大五角星的位置關係,主要是程式中的turtle.left(turtle.towards(center_x,center_y)-turtle.heading()),當然,我看有的人用了round()函式來獲取近似值,但是,預設的已經足夠了。下面是本人寫的程式和結果演示。

import time
import turtle
import os
'''
想要學習Python?Python學習交流群:984632579滿足你的需求,資料都已經上傳群檔案,可以自行下載!
'''
def draw_rectangle(start_x,start_y,rec_x,rec_y):
 turtle.goto(start_x,start_y)
 turtle.color('red')
 turtle.fillcolor('red')
 turtle.begin_fill()
 for i in range(2):
  turtle.forward(rec_x)
  turtle.left(90)
  turtle.forward(rec_y)
  turtle.left(90)
 turtle.end_fill()
 
 
 
 
def draw_star(center_x,center_y,radius):
 turtle.setpos(center_x,center_y)
 #find the peak of the five-pointed star
 pt1=turtle.pos()
 turtle.circle(-radius,72)
 pt2=turtle.pos()
 turtle.circle(-radius,72)
 pt3=turtle.pos()
 turtle.circle(-radius,72)
 pt4=turtle.pos()
 turtle.circle(-radius,72)
 pt5=turtle.pos()
 #draw the five-pointed star
 turtle.color('yellow','yellow')
 turtle.fill(True)
 turtle.goto(pt3)
 turtle.goto(pt1)
 turtle.goto(pt4)
 turtle.goto(pt2)
 turtle.goto(pt5)
 turtle.fill(False)
 
 
#start the project
turtle.speed(5)
turtle.penup()
#draw the rectangle
star_x=-320
star_y=-260
len_x=660
len_y=440
draw_rectangle(star_x,star_y,len_x,len_y)
#draw the big star
pice=660/30
big_center_x=star_x+5*pice
big_center_y=star_y+len_y-pice*5
turtle.goto(big_center_x,big_center_y)
turtle.left(90)
turtle.forward(pice*3)
turtle.right(90)
draw_star(turtle.xcor(),turtle.ycor(),pice*3)
#draw the small star
turtle.goto(star_x+10*pice,star_y+len_y-pice*2)
turtle.left(turtle.towards(big_center_x,big_center_y)-turtle.heading())
turtle.forward(pice)
turtle.right(90)
draw_star(turtle.xcor(),pice)
#draw the second star
turtle.goto(star_x+pice*12,star_y+len_y-pice*4)
turtle.left(turtle.towards(big_center_x,pice)
#draw the third
turtle.goto(star_x+pice*12,star_y+len_y-7*pice)
turtle.left(turtle.towards(big_center_x,pice)
#draw the final
turtle.goto(star_x+pice*10,star_y+len_y-9*pice)
turtle.left(turtle.towards(big_center_x,pice)
 
 
turtle.ht()
time.sleep(3)
os._exit(1)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。