Я модифицировал код, предоставленный Computing101.com.Это слова для создания различных рисунков, однако я пытаюсь изменить внешний круг, чтобы он был округленным треугольником или эллипсом, а также кругом. Я хочу, чтобы он выбирал форму и размер случайным образом.Я также хочу, чтобы ручка меняла цвета на каждой полной итерации
import turtle
from math import cos,sin,pi
from time import sleep
from random import randint, uniform, choice
window = turtle.Screen()
window.bgcolor("#FFFFFF")
myColourList = ['#C7980A', '#F4651F', '#82D8A7', '#CC3A05', '#575E76', '#156943', '#0BD055', '#ACD338']
mySpirograph = turtle.Turtle()
mySpirograph.hideturtle()
mySpirograph.speed(0)
mySpirograph.pensize(2)
myPen = turtle.Turtle()
myPen.hideturtle()
myPen.speed(0)
myPen.pensize(3)
myPen.color(choice(myColourList))
R = randint (150, 300) # Radius of outer Circle
r = randint (10, 100) # Radius of inner Circle
d = randint (5, 100)
s = randint (5, 25)
t = uniform (.01, 1.0)
angle = 0
myPen.penup()
myPen.goto(R-r+d,0)
myPen.pendown()
theta = t
steps = (int(s * pi/theta) * randint (1, 10))
for t in range(0,steps):
mySpirograph.clear()
mySpirograph.penup()
mySpirograph.setheading(0)
mySpirograph.goto(0,-R)
mySpirograph.color('#000')
mySpirograph.pendown()
mySpirograph.circle(R)
angle+=theta
x = (R - r) * cos(angle)
y = (R - r) * sin(angle)
mySpirograph.penup()
mySpirograph.goto(x,y-r)
mySpirograph.color('#000')
mySpirograph.pendown()
mySpirograph.circle(r)
mySpirograph.penup()
mySpirograph.goto(x,y)
mySpirograph.dot(5)
x = (R - r) * cos(angle) + d * cos(((R-r)/r)*angle)
y = (R - r) * sin(angle) - d * sin(((R-r)/r)*angle)
mySpirograph.pendown()
mySpirograph.goto(x,y)
mySpirograph.dot(5)
myPen.goto(mySpirograph.pos())
mySpirograph.getscreen().update()
sleep(0.05)
sleep(0.5)
#Hide Spirograph
mySpirograph.clear()
mySpirograph.getscreen().update()