猿问

如何从随机列表中绘制数字以用作海龟图形的 Y 坐标

我正在尝试为需要绘制花朵的海龟图形程序生成一个随机 Y 坐标列表,但为了防止花朵相互重叠,我需要从后向前绘制它们。我需要做的是将随机列表从大到小排序,然后让它按顺序绘制花朵。


我已经设置程序生成 9 个随机数并将它们从大到小排序,但我不知道如何从该列表中按顺序绘制数字并将它们分配给花的 Y 值


这是我生成随机列表的代码:


def draw_stem(t,StemX,StemY):

    StemYcoordinates=random.sample(range(-200,0),9)

    sorted(StemYcoordinates, key=int)

但是我无法将它连接到代码的这一部分,在那里它转到我想要绘制花的 xy 位置


for i in range(9):

    t.setheading(90)

    t.pensize(7-(StemYcoordinate//40))

    t.color("#39ff14")

    t.penup()

    t.goto(StemX,StemYcoordinates)

    t.down()

任何帮助将不胜感激


摇曳的蔷薇
浏览 227回答 2
2回答

神不在的星期二

我认为对于您的代码,您将需要使用该setpos()方法。此方法将turtle 中的屏幕视为具有四个象限的坐标平面。使用它,相应地设置 x 和 y 坐标,或者根据需要随机设置。例如,每次运行时都会将海龟放在随机位置:from turtle import *t = Turtle()t.penup()from random import randintx = randint(-200, 200)y = randint(-200, 200)t.setpos(x, y)希望这可以帮助!!!

千巷猫影

根据您对问题的描述,您似乎想要以下内容:from turtle import Screen, Turtlefrom random import sample, randomRADIUS = 100PETALS = 10def draw_petal(t, radius):    heading = t.heading()    t.circle(radius, 60)    t.left(120)    t.circle(radius, 60)    t.setheading(heading)def draw_flower(t):    for _ in range(PETALS):        draw_petal(t, RADIUS)        t.left(360 / PETALS)def draw_flowers(t, stemX):    stemYcoordinates = sorted(sample(range(-200, 0), 9))    for stemYcoordinate in stemYcoordinates:        t.setheading(90)        t.pensize(7 + stemYcoordinate // 40)        t.color(random(), random(), random())        t.penup()        t.goto(stemX, stemYcoordinate)        t.pendown()        draw_flower(t)screen = Screen()turtle = Turtle(visible=False)turtle.speed('fastest')  # because I have no patiencedraw_flowers(turtle, 0)screen.exitonclick()但是,如果这不是您要找的内容,请花时间重新阅读和编辑您的问题以阐明您想要做什么。添加更多(如果不是全部)您迄今为止编写的代码,以明确您需要帮助的内容。
随时随地看视频慕课网APP

相关分类

Python
我要回答