Turtle 迷你项目 - Udacity - Python - 围绕另一个形状绘制/移动一个形状

Turtle Mini-Project - Udacity - Python - Drawing / moving a shape around another shape

我想做一朵花,从它的大致中心画出黄线,画出整个圆周。

我遇到的问题是要画一条线,转到中心,然后再次画出相同的长度,但比前一条大 10 度。

我不知道该怎么做,这条线要么反复来回弹跳,要么绕着一边旋转(比如当我做一个尖头的形状时)。

那么我如何让这条黄线回拨,并逐渐羽化/让尖锐的形状不断地画出完整的 360 度?

我想这是我的第一个 'real' 程序。我以前没有编程经验,才开始这样做几天。我在函数 "draw_feather()" 中使用的代码来自另一个站点,因为我不知道如何在圆中旋转三角形。

import turtle

def draw_fractal(ink):
    for i in range(1,37):
        ink.circle(50)
        ink.right(10)


def draw_feather(ink):
    while True:
        ink.forward(200)
        ink.left(170)
        if abs(ink.pos()) < 1:
            break

def draw_stem(ink):
    ink.goto(1,-400)
    ink.home()
    ink.goto(5,-400)
    ink.home()
    ink.goto(3,-400)

def Draw():
    window = turtle.Screen()
    window.bgcolor =("White")

    R = turtle.Turtle()
    R.shape("circle")
    R.color("Red")
    R.setpos(4,3)
    R.speed(100)

    G = turtle.Turtle()
    G.shape("circle")
    G.color("Green")
    G.setpos(3,3)
    G.speed(100)

    B = turtle.Turtle()
    B.shape("circle")
    B.color("Blue")
    B.setpos(2,3)
    B.speed(100)

    Stem = turtle.Turtle()
    Stem.shape("circle")
    Stem.speed(100)

    Feather = turtle.Turtle()
    Feather.shape("circle")
    Feather.speed(100)
    Feather.color("Yellow")

    draw_fractal(R)
    draw_fractal(G)
    draw_fractal(B)
    draw_feather(Feather)
    draw_stem(Stem)

    window.exitonclick()

Draw()  

下面是您的代码的返工,以按照您的描述执行:

import turtle

def draw_flower(ink):
    ink.up()
    ink.home()
    for degrees in range(10, 370, 10):
        ink.down()
        ink.forward(200)
        ink.up()
        ink.home()  # resets angle to 0 degrees
        ink.left(degrees)  # so absolute angle, not relative

def draw_stem(ink):
    ink.goto(1, -400)
    ink.home()
    ink.goto(5, -400)
    ink.home()
    ink.goto(3, -400)

def Draw():
    window = turtle.Screen()
    window.bgcolor("white")

    stem = turtle.Turtle()
    stem.color("green")
    stem.speed("fast")

    draw_stem(stem)

    flower = turtle.Turtle()
    flower.color("yellow")
    flower.speed("fastest")

    draw_flower(flower)

Draw()

turtle.done()

只需转到屏幕中央,画一条黄线,重新回到屏幕中央,轻轻转动并重复。请注意,turtle.home() 方法会影响海龟的角度,因此我们必须为此进行调整:

此外,100 对 turtle.speed() 没有任何意义,因为它大于 10 -- 使用符号参数来明确您的意图。