在Python中将HSV转换为RGB
我得到错误消息:“color_rgb()缺少两个必需的位置参数:'g'和'b'”,但如果我打印rgb,我会得到:(-0.0,-0.0,0)”,所以有三个 我作了如下更正:在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) 但现在我收到了错误消息: 文件“
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))