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 有效。