Ответ 1
Без использования дополнительного импорта это довольно просто:
turtle.colormode(255) # sets the color mode to RGB
R = random.randrange(0, 256, 100) # last value optional (step)
B = random.randrange(0, 256)
G = random.randrange(0, 256)
# using step allows more control if needed
# for example the value of '100' would return '0', '100' or '200' only
Rocket.color(R, G, B) ## randomized from values above
Используя рандомизированные значения (200
, 255
, 23
):
РЕДАКТИРОВАТЬ: Относительно "я просто изменить Turtle.colormode() на Rocket.colormode() для следующего?"
Я бы порекомендовал сделать это так: создать функцию:
def drawColor():
turtle.colormode(255)
R = random.randrange(0, 256)
B = random.randrange(0, 256)
G = random.randrange(0, 256)
return R, G, B
Rocket.color(drawColor())
Таким образом, вы можете вызывать drawColor()
любое время, когда вам нужен новый цвет.
Теперь, когда у вас есть основы рандомизации цветов для вашего рисунка, вы можете проявить творческий подход, используя значения для некоторых потрясающих результатов (откорректируйте целые числа по своему вкусу):
#!/usr/bin/python
import turtle, math, random, time
def drawColor(a, b, o):
turtle.colormode(255)
R = random.randrange(a, b, o) # last value is step (optional)
B = random.randrange(a, b, o)
G = random.randrange(a, b, o)
# print(R, G, B)
return R, G, B
def drawRocket(offset):
Rocket = turtle.Turtle()
Rocket.speed(0)
Rocket.color(drawColor(20, 100, 1)) # start (0-256), end (0-256), offset
rotate=int(random.randrange(90))
drawSpecial(Rocket,random.randrange(0, 10), offset)
def drawCircles(t,size):
for i in range(30):
t.circle(size)
size = size - 20
def drawSpecial(t,size,repeat):
for i in range(repeat):
drawCircles(t,size)
t.right(360/repeat)
def drawMain(x, y):
wn = turtle.Screen()
wn.bgcolor(drawColor(0, 20, 2))
for i in range(3): # iterations
drawRocket(x)
x+=y
# print(x)
drawMain(2, 10) # offset, step
input("Press ENTER to exit")