turtle.down()不会使笔下降

时间:2017-10-24 21:17:20

标签: python turtle-graphics

import turtle


def draw_petal():
    """This function draws a singel petal """
    turtle.forward(30)
    turtle.right(45)
    turtle.forward(30)
    turtle.right(135)
    turtle.forward(30)
    turtle.right(45)
    turtle.forward(30)
    turtle.right(135)


def draw_flower():
    """This function uses the draw_petal function to draw a flower"""
    turtle.left(45)
    draw_petal()
    turtle.left(90)
    draw_petal()
    turtle.left(90)
    draw_petal()
    turtle.left(90)
    draw_petal()
    turtle.left(135)
    turtle.forward(150)


def draw_flower_advanced():
    """This....."""
    draw_flower()
    turtle.right(90)
    turtle.up()
    turtle.forward(150)
    turtle.right(90)
    turtle.forward(150)
    turtle.left(90)
    turtle.down()


def draw_flower_bed():
    """Theis function......"""
    turtle.up()
    turtle.forward(200)
    turtle.left(180)
    turtle.down()
    draw_flower_advanced()
    draw_flower_advanced()
    draw_flower_advanced()


draw_flower_bed()

turtle.done()

============================

由于某种原因,乌龟从不接触画布,因此笔总是向上。

当我使用pendown()它的工作,但python 3.6应该有 down()函数也没有?

3 个答案:

答案 0 :(得分:0)

当你想要移动产生线条时,应该放下笔,当你想要移动不产生线条时,应该拾起笔。

你让他们逆转了。

turtle.up()
turtle.forward(200)
turtle.left(180)
turtle.down()

应该是:

turtle.down()
turtle.forward(200)
turtle.left(180)
turtle.up()

答案 1 :(得分:0)

您的断言是正确的,3.6中存在turtle.down()。您也可以使用turtle.pd(),因为它们都是turtle.pendown()的别名。

作为一个数据点,我完全按照我的计算机运行你的代码,它没有问题,在屏幕上绘制了3朵花。

也许你的python安装以某种方式被破坏了?您可以使用dis库验证turtle.down函数。在shell中运行:

import turtle
import dis
dis.dis(turtle.down)

这应该以反汇编的字节代码的形式产生大量输出。如果它没有,那么你的python安装很可能已经损坏,应该重新安装。

答案 2 :(得分:0)

尝试更改颜色color("red")。您可能会发现笔实际上已经关闭但是使用与背景颜色不明显的前景色进行绘制。

否则,您的代码看起来正确,对我来说效果很好。