绘制所有在原点相遇的圆圈,就像使用乌龟图形的螺旋一样

时间:2017-02-07 05:59:48

标签: python turtle-graphics

我刚刚开始学习海龟,想要制作一个由45个圆圈组成的圆形花环(每8度重复一次),每个半径50,并在原点连接。

示例所需输出
enter image description here

我有一些代码,但它只会形成一个圆圈:

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()

我错过了什么?

2 个答案:

答案 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()

输出

enter image description here

答案 1 :(得分:0)

由于您希望半径为50的圆穿过原点,所需圆的中心必须与原点完全相距50个单位。

现在考虑一个圆的定义。它是一个点的集合(一个点的轨迹是正确的术语,但它并不重要),所有这些都是来自固定距离(称为半径) >固定点(称为中心)。如果你还记得,我们推测那个

  

所需圆圈的中心必须与原点

完全相距50个单位

嗯,你知道什么!这些中心形成,其中原点为中心,半径为 50个单位。我们现在知道我们需要半径为50个单位的圆,每个圆的中心位于上,其中半径为50个单位并且以原点为中心

我们现在需要做的是移动到半径为50个单位且原点为中心的圆上的一个点,绘制一个半径为50的圆在那一点上。通过围绕圆圈旋转8度(您可以更改此值),可以找到将乌龟移动到圆上的点。

我希望能够帮助您自己实现这一目标。如果没有,请看看@ cdlane的答案。