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()缺少2个必需的位置参数:'g'和'b'”,但是如果我打印RGB,则会得到:“(-0.0,-0.0,0)”,所以有三个
我在以下进行了更正:
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)
但是现在我收到错误消息:
color_rgb中的文件“ D:\ Python \ graphics.py”,行962 返回“#%02x%02x%02x”%(r,g,b) TypeError:%x格式:必须为整数,不能为浮点数
答案 0 :(得分:1)
RGB
在这里是3元组,但是您不能将此元组传递给color_rgb
:此方法需要三个参数。但是,您可以在三个参数中解包元组,例如,在星号(*
前面):
pt.setFill(color_rgb(*RGB))
或者您可以首先将元组解压缩为三个变量:
r, g, b = RGB
pt.setFill(color_rgb(r, g, b))
但是请注意,如果将v
参数设置为0
,由于HSV基本上是圆锥形,因此这将总是返回(0, 0, 0)
,因为HSV基本上是圆锥形,而{{ 1}}参数确定从“顶部”到“表面”的距离,如以下Wikipedia image [wiki]所示:
因此,对于v
,无论v=0
ue和h
饱和度的值如何,总会导致 black 。