Как нарисовать числа из случайного списка для использования в качестве Y-координат для графики черепахи - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь сгенерировать список случайных координат Y для графической программы черепахи, которая должна рисовать цветы, но чтобы не допустить рисования цветов друг над другом, мне нужно нарисовать их сзади вперед.Что мне нужно сделать, это отсортировать случайный список от наибольшего к наименьшему, а затем нарисовать цветы в указанном порядке.

Я уже настроил программу для генерации 9 случайных чисел и сортировки их от наибольшего к наименьшему, но я не знаю, как нарисовать числа из этого списка по порядку и назначить им значение Y дляflower

Это мой код для генерации случайного списка:

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

любая помощь будет принята с благодарностью

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Основываясь на описании вашей проблемы, вы, кажется, хотите что-то вроде:

from turtle import Screen, Turtle
from random import sample, random

RADIUS = 100
PETALS = 10

def 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 patience

draw_flowers(turtle, 0)

screen.exitonclick()

enter image description here

Но если это не то, что выищите, найдите время, чтобы перечитать и отредактировать свой вопрос, чтобы уточнить, что вы хотите сделать.Добавьте еще (если не весь) код, который вы написали до сих пор, чтобы понять, в чем вам нужна помощь.

0 голосов
/ 27 марта 2019

Я думаю, что для вашего кода вам нужно будет использовать метод setpos().

Этот метод рассматривает экран в черепахе как координатную плоскость с четырьмя квадрантами.

enter image description here

Используя это, установите координаты x и y соответственно или случайным образом, если хотите.

Например, это ставит черепаху в случайное место каждый раз, когда вы ее запускаете:

from turtle import *
t = Turtle()
t.penup()
from random import randint
x = randint(-200, 200)
y = randint(-200, 200)
t.setpos(x, y)

Надеюсь, это поможет !!!

...