英文:
Drawing a USA flag in Python turtle
问题
因为我使用翻译器,英语可能不自然。
我做了一段代码来绘制美国国旗,但遇到了问题。
我完成了一行星星,但不知道如何在底部重复相同的过程。
下面是我写的代码:
from turtle import *
setup(800, 500)
shape("turtle")
speed(0)
# 起始点
redx = -400
redy = 250
# 一条红色横线
def stripe():
color("red")
begin_fill()
for i in range(2):
forward(800)
right(90)
forward(38)
right(90)
end_fill()
# 七条红色横线
for i in range(7):
penup()
goto(redx, redy)
pendown()
stripe()
redy= redy - 76
# 蓝色矩形
penup()
goto(-400, 250)
pendown()
color("blue")
begin_fill()
for i in range(2):
forward(350)
right(90)
forward(266)
right(90)
end_fill()
# 一个星星
def star():
color("white")
begin_fill()
for i in range(5):
forward(20)
right(144)
end_fill()
# 一行六个星星
def sixstar():
x1=-380
y1=230
for i in range(6):
penup()
goto(x1, y1)
pendown()
star()
x1 = x1 + 57
sixstar()
hideturtle()
我想知道如何解决这个问题。如果你有更好的代码,请告诉我。
英文:
Because I use a translator, English can be unnatural.
I made a code to draw the American flag, but it got stuck.
I've completed a line of stars, but I don't know how to do the same on the bottom line.
Below is the code that I wrote:
from turtle import *
setup(800, 500)
shape("turtle")
speed(0)
#시작점
redx = -400
redy = 250
#빨간줄 1개
def stripe():
color("red")
begin_fill()
for i in range(2):
forward(800)
right(90)
forward(38)
right(90)
end_fill()
#빨간줄 7개
for i in range(7):
penup()
goto(redx, redy)
pendown()
stripe()
redy= redy - 76
#파란 사각형
penup()
goto(-400, 250)
pendown()
color("blue")
begin_fill()
for i in range(2):
forward(350)
right(90)
forward(266)
right(90)
end_fill()
#별 1개
def star():
color("white")
begin_fill()
for i in range(5):
forward(20)
right(144)
end_fill()
#6개짜리 별 한줄
def sixstar():
x1=-380
y1=230
for i in range(6):
penup()
goto(x1, y1)
pendown()
star()
x1 = x1 + 57
sixstar()
hideturtle()
I want to know how to solve it. Also please let me know if you have any better code.
答案1
得分: 2
你可以修改sixstar()
函数,以包括一个绘制多行星星的循环,修改范围以绘制尽你所愿的行数。
def sixstar():
x1 = -380
y1 = 230
# 循环绘制多行星星
for j in range(5):
for i in range(6):
penup()
goto(x1, y1)
pendown()
star()
x1 = x1 + 57
# 将x1重置为起始位置
x1 = -380
# 向下移动到下一行
# 根据需要修改此值以设置行之间的距离。
y1 = y1 - 50
英文:
You can modify the sixstar()
function to include a loop that draws multiple rows of stars, modify the range to draw as many rows as you wish.
def sixstar():
x1 = - 380
y1 = 230
# loop for drawing multiple rows of stars
for j in range(5):
for i in range(6):
penup()
goto(x1, y1)
pendown()
star()
x1 = x1 + 57
# reset x1 to the starting position
x1 = - 380
# move down to the next row
# modify this as you wish to set the distance between rows.
y1 = y1 - 50
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论