我刚刚开始学习海龟,想要制作一个由45个圆圈组成的圆形花环(每8度重复一次),每个半径50,并在原点连接。
我有一些代码,但它只会形成一个圆圈:
from turtle import *
from math import *
def spiral():
turtle.up()
turtle.goto(0,50)
turtle.down()
turtle.color("orange")
times_crossed_y >= 0
for n in range(45):
setposition((8*n,-8*n))
x_sign = 1.0
while times_crossed_y >= 45:
turtle.foward(2*math.pi*50/360.0)
turtle.right(1.0)
return
circle(100)
print('finished')
bye()
我错过了什么?
答案 0 :(得分:1)
你太努力了 - 这个问题比你做的更简单:
from turtle import Turtle, Screen
from itertools import cycle
ANGLE = 8
colors = ["orange", "yellow", "tan", "pink", "coral"]
def spiral(turtle, radius, color_names):
colors = cycle(color_names)
for _ in range(360 // ANGLE):
turtle.color(next(colors))
turtle.circle(radius)
turtle.left(ANGLE)
yertle = Turtle(visible=False)
yertle.speed("fastest")
spiral(yertle, 50, colors)
screen = Screen()
screen.exitonclick()
输出
答案 1 :(得分:0)
由于您希望半径为50的圆穿过原点,所需圆的中心必须与原点完全相距50个单位。
现在考虑一个圆的定义。它是一个点的集合(一个点的轨迹是正确的术语,但它并不重要),所有这些都是来自固定距离(称为半径) >固定点(称为中心)。如果你还记得,我们推测那个
所需圆圈的中心必须与原点
完全相距50个单位
嗯,你知道什么!这些中心形成圆,其中原点为中心,半径为 50个单位。我们现在知道我们需要半径为50个单位的圆,每个圆的中心位于圆上,其中半径为50个单位并且以原点为中心。
我们现在需要做的是移动到半径为50个单位且原点为中心的圆上的一个点,绘制一个半径为50的圆在那一点上。通过围绕圆圈旋转8度(您可以更改此值),可以找到将乌龟移动到圆上的点。
我希望能够帮助您自己实现这一目标。如果没有,请看看@ cdlane的答案。