Черепаха, обратный список цветов - PullRequest
0 голосов
/ 09 апреля 2020
    import turtle as t
    import math

    #shape drawer function on turtle
    def drawer(a1, a2, b, ang, dist, clr): #a1 -> y-axis, a2 -> x-axis, b -> size of squares
        #define screen and drawer
        pen = t.Turtle()
        pen.shape("turtle")

        #define initial position
        pen.penup()
        pen.setposition(-(a2-0.5)*b, (a1-0.5)*b) #shape centered
        pen.pendown()

        for y in range(a1): #number of lines (y-axis)
             for x in range(a2): #number of squares on the same line (x-axis)
                 for s in range(4): #square shape
                    if y <= 6:
                        pen.color(colors[y%6]) #!!!!
                        pen.forward(b)
                        pen.right(90)
                    elif y > 6:
                        colors2 = colors[::-1] #!!!!
                        pen.color(colors2[(y-1)%6])
                        pen.forward(b)
                        pen.right(90)

                pen.penup()
                pen.forward(2*b)
                pen.pendown()

            pen.penup()
            pen.right(ang)
            pen.forward(dist)
            pen.left(ang)
            pen.pendown()

        t.done()

    #user-defined input
    n_line = int(input("Enter the number of lines of the shape:\n")) #y-axis
    n_sqr = int(input("Enter the number of squares in a line:\n")) #x-axis
    sqr = int(input("Enter the size of the squares:\n"))

    #trigonometric functions to adjust the shape on turtle
    n_ang = 180 - math.degrees(math.atan(1/n_sqr))
    n_dist = 1/(math.sin(math.radians(n_ang))/(2*sqr))

    colors = ["yellow", "orange", "red", "green", "blue", "purple"] #defined colors

    drawer(n_line, n_sqr, sqr, n_ang, n_dist, colors)

Это мой код; делая квадраты в черепахе, каждая линия разных цветов. Я хочу сделать квадратные цвета по порядку в первых 6 строках, а затем сделать их цвета в обратном порядке; 7-я строка синяя, 8-я линия зеленая, 9-я линия красная и т. Д. c ... Собственно, моя основная идея заключалась в том, чтобы создать цветную волну:

  • Номера строк от 1-6 желтого до фиолетового
  • Номера строк 7-12 от фиолетового до желтого
  • Номера строк 13-18 от желтого до фиолетового
  • Номера строк 19-24 от фиолетового до желтого

et c ...

Я не мог создать алгоритм для этой волны, есть идеи? PS Пожалуйста, проверьте # !!!! закомментированные строки ..

...