急求!这是一个用python画国旗的程序,请求大神解释一下每一步是干嘛的
发布网友
发布时间:2022-04-29 18:28
我来回答
共2个回答
热心网友
时间:2023-10-03 05:28
import turtle //导入模块
import time
import os
def draw_square(org_x, org_y, x, y): //定义红旗绘制函数
turtle.setpos(org_x, org_y) //定义画笔初始位置
turtle.color('red', 'red') //颜色
turtle.begin_fill() //开始绘制
turtle.fd(x) //绘制偏转方向和角度
turtle.lt(90)
turtle.fd(y)
turtle.lt(90)
turtle.fd(x)
turtle.lt(90)
turtle.fd(y)
turtle.end_fill() //绘制结束
def draw_star(center_x, center_y, radius): //定义星星绘制函数
print(center_x, center_y) //显示位置
turtle.pencolor('black') //画笔轨迹颜色
turtle.setpos(center_x, center_y) //中心点位置
pt1 = turtle.pos() //偏转角度计算
turtle.circle(-radius, 360 / 5)
pt2 = turtle.pos()
turtle.circle(-radius, 360 / 5)
pt3 = turtle.pos()
turtle.circle(-radius, 360 / 5)
pt4 = turtle.pos()
turtle.circle(-radius, 360 / 5)
pt5 = turtle.pos()
turtle.color('yellow', 'yellow') //星星颜色
turtle.begin_fill() //开是绘制
turtle.goto(pt3)
turtle.goto(pt1)
turtle.goto(pt4)
turtle.goto(pt2)
turtle.goto(pt5)
turtle.end_fill() //绘制结束
print(turtle.pos())
turtle.pu() //隐藏画笔轨迹
draw_square(-320, -260, 660, 440) //绘制红旗
star_part_x = -320 //自定义星星大小等属性
star_part_y = -260 + 440
star_part_s = 660 / 30
center_x, center_y = star_part_x + star_part_s * 5, star_part_y - star_part_s * 5 //计算星星中心点位置
turtle.setpos(center_x, center_y)
turtle.lt(90)
draw_star(star_part_x + star_part_s * 5, star_part_y - star_part_s * 2, star_part_s * 3) //绘制星星
turtle.goto(star_part_x + star_part_s * 10, star_part_y - star_part_s * 2) //同上
turtle.lt(round(turtle.towards(center_x, center_y)) - turtle.heading())
turtle.fd(star_part_s)
turtle.rt(90)
draw_star(turtle.xcor(), turtle.ycor(), star_part_s)
turtle.goto(star_part_x + star_part_s * 12, star_part_y - star_part_s * 4)
turtle.lt(round(turtle.towards(center_x, center_y)) - turtle.heading())
turtle.fd(star_part_s)
turtle.rt(90)
draw_star(turtle.xcor(), turtle.ycor(), star_part_s)
turtle.goto(star_part_x + star_part_s * 12, star_part_y - star_part_s * 7)
turtle.lt(round(turtle.towards(center_x, center_y)) - turtle.heading())
turtle.fd(star_part_s)
turtle.rt(90)
draw_star(turtle.xcor(), turtle.ycor(), star_part_s)
turtle.goto(star_part_x + star_part_s * 10, star_part_y - star_part_s * 9)
turtle.lt(round(turtle.towards(center_x, center_y)) - turtle.heading())
turtle.fd(star_part_s)
turtle.rt(90)
draw_star(turtle.xcor(), turtle.ycor(), star_part_s)
turtle.ht()
time.sleep(5) //设置挂起时间
os._exit(1)追问请问一系列的
pt1 =turtle.pos()
turtle.circle(-radius,360 / 5)
和后边的一系列
turtle.goto(pt3)
都是什么意思啊,是干嘛的啊
热心网友
时间:2023-10-03 05:29
from turtle import *
fillcolor("red")
begin_fill()
pu()
goto(-300,200)
goto(300,200)
goto(300,-200)
goto(-300,-200)
goto(-300,200)
end_fill()
pu()
goto(-290,120)
def fun(x1,y1,a,b,d):
import turtle
turtle.pu()
turtle.fillcolor("yellow")
turtle.begin_fill()
turtle.goto(x1,y1)
turtle.right(b)
turtle.left(d)
turtle.forward(a)
turtle.left(72)
turtle.forward(a)
turtle.right(144)
turtle.forward(a)
turtle.left(72)
turtle.forward(a)
turtle.right(144)
turtle.forward(a)
turtle.left(72)
turtle.forward(a)
turtle.right(144)
turtle.forward(a)
turtle.left(72)
turtle.forward(a)
turtle.right(144)
turtle.forward(a)
turtle.left(72)
turtle.forward(a)
turtle.right(144)
turtle.end_fill()
fun(-290,120,44,0,0)
fun(-115,175,44/3,18,0)
fun(-80,120,44/3,0,36)
fun(-80,68,44/3,18,0)
fun(-115,33,44/3,18,0)