Stopniowe przejście kolorów

0

Witam mam taki program:

from turtle import *
from math import sqrt

fd = forward
bk = backward
lt = left
rt = right

speed('fastest') 
             
             
def kwadrat():
    fillcolor(0, 0, 0)
    begin_fill()
    for i in range(4):
        fd(20)
        rt(90)
    end_fill()
        
def linia(n):
    for i in range(n):
        kwadrat()
        pu(); fd(20); pd()

def labirynt(n):
     for i in range(n, 0, -1):
        linia(i)
        bk(20)
        lt(90) 

Kod ten tworzy taki jakby labirynt z czarnymi ścianami. Jak mam napisać kod, żeby im bliżej środka tym ściany były jaśniejsze?
Albo inaczej. Zaczynam od czarnego kwadratu, a ostatni ma być biały. I teraz przejście z czarnego na biały jest rozbite na resztę tych kwadratów.
Proszę o pomoc.
Pozdrawiam

0

Najprościej to po prostu sprawdzaj pozycję w linia i obliczaj kolor proporcjonalnie względem wymiarów ekranu.

0

Kolor ma się zmieniać co ścianę? Parametr n w funkcji labirynt to ilość ścian? Jeśli tak to utwórz tablicę trzyelementową i zwiększaj wartości tablicy co iterację w pętli w funkcji labirynt() o 255/n. Potem przy funkcji fillcolor robisz fillcolor(*tablica).

0

n to ilość ścian i ilość kwadratów w pierwszej linii. Chciałbym żeby kolor zmieniał się do kwadrat. Jeśli robię tak że np:

r = 0
g = 0
b = 0
fillcolor(r,g,b) 

i w każdej iteracji zwiększam/zmniejszam r, g i b to wywala mi

bad color sequence: (0, 7.5, -9)
EDIT Pomoże ktoś? :D

dodanie znacznika <code class="python"> i zamiana znacznika <quote> na <code> - @furious programming

1

@Florian

Nad funkcjami:

colormode(255)

1 użytkowników online, w tym zalogowanych: 0, gości: 1