vPython - 逐渐改变颜色
vPython - gradually change colors
我想让一个物体根据彩虹改变颜色。
由于这没有解决,我试图用 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)
好的,我发现错误了:
vPython 只接受从 0 到 1 的数字作为颜色。
所以将所有颜色除以 255 有效。
我想让一个物体根据彩虹改变颜色。
由于这没有解决,我试图用 visual.graph 来形象化问题:
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)
好的,我发现错误了: vPython 只接受从 0 到 1 的数字作为颜色。 所以将所有颜色除以 255 有效。