如何逐渐改变python乌龟颜色的饱和度

问题描述 投票:0回答:1

我想让颜色改变饱和度 就像当你绘制一种颜色(红色)然后你改变它,这样它就不会立即变成白色。它慢慢地使它变浅,直到颜色变成白色。 不是这个帖子: 逐渐改变颜色乌龟(蟒蛇) 因为它会立即改变颜色。

我尝试过

colors = ["red","white"] for i in range(2): turtle.color(colors[i]) turtle.circle(100) done()
但随后,它立即改变颜色,这是我不想要的。 有人可以帮助我吗?

python drawing python-turtle
1个回答
0
投票

您面临的问题是,circle 方法正在做它自己的事情。一旦该例程开始,似乎就没有办法在绘制时影响它的任何属性。这意味着您必须发挥创意并制作自己的圆形绘制功能。下面是一个让您了解大致情况的示例。

import turtle as t
from collections import deque
from math import cos, sin, radians

#black to red gradient
c = [f'#{(c<<20|c<<16):06x}' for c in range(0, 16)]
colors = deque(c)

def draw_circle(radius, x, y, thickness=2):
    t.width(thickness)
    t.tilt(90) # emulate circle cursor

    # move pen
    t.penup()
    t.goto(x + radius, y)
    t.pendown()

    t.color(colors[0])
    t.begin_fill()

    for i in range(1, 361):
        t.tilt(1) # emulate circle cursor

        # change colors
        if i>15 and not i%(360//15):
            colors.rotate(-1)
            t.color(colors[0])

        # draw this step
        t.goto(radius * cos(radians(i)) + x, radius * sin(radians(i)) + y)

    t.end_fill()
    
draw_circle(100, 0, 0)

t.mainloop()
© www.soinside.com 2019 - 2024. All rights reserved.