运行结果
玫瑰曲线 turtle
代码
import time
import turtle
import math
import xxqx
import random
def draw(K=1, A=300, w=True):
turtle.tracer(False)
if w:
write(K)
start_x, start_y = 0, 0
else:
start_x, start_y = pen.pos()
for i in range(3600):
l = A * math.sin(K * (a := i / (180 / math.pi)))
x, y = l * math.cos(a) + start_x, l * math.sin(a) + start_y
pen.goto(x, y)
turtle.update()
def write(K):
bg.write(f'ρ=a*sin({K}θ)')
def draw_more():
for i in range(100):
pen.pu()
pen.goto(random.randint(-900, 900), random.randint(-500, 500))
pen.pd()
draw(random.randint(1, 100), random.randint(50, 100), False)
if __name__ == '__main__':
# l = A * sin(K * a)
turtle.setup(600, 600)
pen = turtle.Pen()
bg = turtle.Pen()
xxqx.sign(x=160, y=-280, color='red', font=['楷体'])
turtle.bgcolor('black')
turtle.Screen().delay(False)
pen.pencolor('green')
pen.speed(10)
pen.ht()
bg.ht()
bg.pencolor('purple')
bg.pu()
bg.goto(-280, 280)
for a in range(1, 100):
draw(a / 10)
# time.sleep(0.1)
pen.clear()
bg.clear()
turtle.setup(1920, 1080)
draw_more()
turtle.done()