我想让一个物体根据彩虹改变它的颜色。 由于这没有用,我试图用visual.graph可视化问题: 在x轴下方可以看到可视化颜色的颜色。 它不会逐渐改变。如果棒应该建立一个很好的光谱。
from visual.graph import *
def regenbogenfarben(ausgangsfarbe=(255,0,0)):
"liefert ausgehend vom input die nächste Farbe im Regenbogen"
# vergleiche http://www.mikrocontroller.net/topic/238304
step = 51
r,g,b = ausgangsfarbe # split the tuple...
if r==255 and b==0 and g!=255:
g+=5 # mehr grün
elif b==0 and g==255 and r!=0:
r-=5 # weniger rot
elif r==0 and g==255 and b!=255:
b+=5 # mehr blau
elif b==255 and r==0 and g!=0:
g-=5 # weniger grün
elif g==0 and b==255 and r!=255:
r+=5 # mehr rot
elif g==0 and r==255 and b!=0:
b-=5 # weniger blau
#print((r,g,b))
return r,g,b # tupel zurückgeben
gdisplay(background=color.white, foreground=color.black,
ytitle="Farbanteil", xtitle="step")
r=gcurve(color=color.red)
g=gcurve(color=color.green)
b=gcurve(color=color.blue) # drei Farbanteile veranschaulichen
rgb=(255,0,0)
farbe=gvbars(color=color.red) # Farbe darstellen
for i in range(6*51+20):
r.plot(pos=(i,rgb[0]))
g.plot(pos=(i,rgb[1]))
b.plot(pos=(i,rgb[2]))
farbe.plot(pos=(i,-10),color=rgb)
rgb=regenbogenfarben(rgb)
答案 0 :(得分:1)
好的,我发现了错误: 对于颜色,vPython仅使用0到1之间的数字。 所以将所有颜色除以255就可以了。