turtle实例8 玫瑰曲线

运行结果

玫瑰曲线 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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值