【发布时间】:2019-05-25 13:58:05
【问题描述】:
我必须把 20 只海龟放在一个有 20 条边的多边形的顶点上,所以它们会在一个有规则间距的圆上。
我有 Turtle 类,我想把这 20 只乌龟放在哪里。我知道如何将更多海龟放在一个文件中,但如何将它们放在一个圆圈中?
# Already working
class Turtle:
def __init__(self, x, y):
self.x = x
self.y = y
self.heading = 0
self.lines = []
def left(self, angle):
self.heading -= angle
def right(self, angle):
self.heading += angle
def forward(self, d):
nx = self.x + d * math.cos(self.heading * math.pi / 180)
ny = self.y + d * math.sin(self.heading * math.pi / 180)
self.lines.append((self.x, self.y, nx, ny))
self.x, self.y = nx, ny
def save(filename, lines):
f = open(filename, "w")
f.write('<svg viewBox="-500 -500 1000 1000">')
s = '<line x1="{}" y1="{}" x2="{}" y2="{}" style="{}" />'
for i in lines:
for x1, y1, x2, y2 in i:
f.write(s.format(x1, y1, x2, y2, "stroke:black;stroke-width:1"))
f.write("</svg>")
f.close()
# Here is just a try to put more turtles with more lines in one file
# But I can't do this with 20 turtles...
def set_turtles():
global all_lines
turtle_names = []
t_red = Turtle(-100, 0)
turtle_names.append(t_red)
t1 = Turtle(0, 100)
turtle_names.append(t1)
t2 = Turtle(0, -100)
turtle_names.append(t2)
for turtle in turtle_names:
for i in range(4):
turtle.forward(10)
turtle.left(90)
all_lines.append(turtle.lines)
save("drawing_one.html", all_lines)
f.close()
【问题讨论】:
-
当您的问题已累积答案时,请不要删除它们。这不是网站的运作方式。