vPython - 逐渐改变颜色

时间:2015-05-07 11:12:29

标签: python python-3.x vpython

我想让一个物体根据彩虹改变它的颜色。 由于这没有用,我试图用visual.graph可视化问题: 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)

1 个答案:

答案 0 :(得分:1)

好的,我发现了错误: 对于颜色,vPython仅使用0到1之间的数字。 所以将所有颜色除以255就可以了。

enter image description here