用python函数画德国国旗代码_使用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(),turtle.ycor(),pice)

#draw the second star

turtle.goto(star_x+pice*12,star_y+len_y-pice*4)

turtle.left(turtle.towards(big_center_x,big_center_y)-turtle.heading())

turtle.forward(pice)

turtle.right(90)

draw_star(turtle.xcor(),turtle.ycor(),pice)

#draw the third

turtle.goto(star_x+pice*12,star_y+len_y-7*pice)

turtle.left(turtle.towards(big_center_x,big_center_y)-turtle.heading())

turtle.forward(pice)

turtle.right(90)

draw_star(turtle.xcor(),turtle.ycor(),pice)

#draw the final

turtle.goto(star_x+pice*10,star_y+len_y-9*pice)

turtle.left(turtle.towards(big_center_x,big_center_y)-turtle.heading())

turtle.forward(pice)

turtle.right(90)

draw_star(turtle.xcor(),turtle.ycor(),pice)

turtle.ht()

time.sleep(3)

os._exit(1)

2019924141720046.jpg?2019824141738

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值