Треугольная / геометрическая радуга спираль

Вместо издевательств SLF4J вы могли бы разместить важные вызовы журналов, которые вам нужны , чтобы протестировать их собственные методы, которые вы можете легко высмеивать.

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

1
задан cdlane 1 March 2019 в 17:58
поделиться

1 ответ

Давайте рассмотрим ваш код:

p = turtle.Pen()
p.reset()

Для чего reset()? Ничего еще не было установлено , установлено , так почему же сбросить ? Не добавляйте код, который не продвигает вашу цель. Снова здесь:

p.down()

Ручка начинается вниз, поэтому нет необходимости ее менять. В этой команде:

p.speed(22)

Откуда 22 пришли? Документация для speed() говорит, что аргумент от 1 («самый медленный») до 10 («быстрый»), где 0 означает «самый быстрый» Это превращает 22 в какое-то другое значение - если вы не знаете что, тогда не используйте его! Для ясности вы должны использовать символические альтернативы, такие как «медленный».

    p.left(22222)

Откуда 22222 пришел? Почему ты удивлен, что у тебя нет треугольника? Для идеального равностороннего треугольника мы бы использовали 120 градусов, но нам не нужен идеальный треугольник, нам нужна спираль, поэтому мы добавим к этому значению градус или два. Почему это имя переменной:

dog = 0

Имена переменных должны разъяснять, что мы делаем, а не скрывать это. Эта переменная будет циклически проходить через компонент «H» значения цвета «HSV», где «H» обозначает «оттенок». Итак, давайте использовать это.

Наконец, нам нужен один цикл, а не два, чтобы изменения рисунка и цвета происходили одновременно:

from turtle import Screen, Pen
import colorsys

screen = Screen()
screen.title("Rainbow Spiral")

pen = Pen()
pen.speed('fastest')

hue = 0.0  # range is 0.0 to 1.0

for i in range(200):
    color = colorsys.hsv_to_rgb(hue, 1, 1)  # pen wants RGB
    pen.pencolor(color)
    pen.forward(i * 2)  # double size
    pen.right(121)  # 120 degrees is an equilateral triangle
    hue += 0.005  # increment by 1/200

pen.hideturtle()

screen.exitonclick()

Обратите внимание, что я изменил left() на right(), чтобы соответствовать вашему пример спирали.

ВЫХОД

enter image description here

Программы рассказывают историю. Тщательно выбирайте имена персонажей (переменные) и избегайте включения элементов (кода) в историю, которые не влияют на ее исход.

0
ответ дан cdlane 1 March 2019 в 17:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: