在Python中将HSV转换为RGB

在Python中将HSV转换为RGB,python,rgb,hsv,Python,Rgb,Hsv,我得到错误消息:“color_rgb()缺少两个必需的位置参数:'g'和'b'”,但如果我打印rgb,我会得到:(-0.0,-0.0,0)”,所以有三个 我作了如下更正: pt = Point(x,y) h=angle s=length RGB=colorsys.hsv_to_rgb(h, s, 0) print (RGB) pt.setFill(color_rgb(RGB)) pt.draw(win) 但现在我收到了错误消息: 文件“

我得到错误消息:“color_rgb()缺少两个必需的位置参数:'g'和'b'”,但如果我打印rgb,我会得到:(-0.0,-0.0,0)”,所以有三个

我作了如下更正:

    pt = Point(x,y) 
    h=angle
    s=length
    RGB=colorsys.hsv_to_rgb(h, s, 0)
    print (RGB)
    pt.setFill(color_rgb(RGB))
    pt.draw(win)
但现在我收到了错误消息:

文件“D:\Python\graphics.py”,第962行,颜色为rgb 返回“#%02x%02x%02x”%(r,g,b)
TypeError:%x格式:需要一个整数,而不是float,这里的RGB是一个3元组,但您不能将此元组传递给
color\u RGB
:此方法需要三个参数。但是,您可以在三个参数中解压元组,例如前面有星号(
*
):

    pt = Point(x,y) 
    h=angle
    s=length
    print (h,s)
    RGB=colorsys.hsv_to_rgb(h, s, h + s)
    pt.setFill(color_rgb(*RGB))
    pt.draw(win)
pt.setFill(颜色为rgb(*rgb))
或者,您可以先将元组解压缩为三个变量:

pt.setFill(color_rgb(*RGB))
r,g,b=RGB
零件设置填充(颜色为rgb(r、g、b))
但是请注意,如果将
v
参数设置为
0
,这将始终返回
(0,0,0)
,因为HSV基本上是一个圆锥体,
v
参数确定从“顶部”到“表面”的距离,如下所示:

因此,对于
v=0
,无论
h
ue和
s
饱和度的值是多少,这都会导致黑色。

您需要将元组“解包”为三个元素。好的,谢谢!:)但是对不起:(我不得不问,我是怎么做到的?
r, g, b = RGB
pt.setFill(color_rgb(r, g, b))