Monday, October 5, 2015

Walking Sine on Visual Python GDisplay

 Look, the wrong way often provide a beautiful result. Yeah, it's not what the program should be, but still I like it, :)


from __future__ import division, print_function
from visual import *
from visual.graph import *

def f(x):
    f = sin(pi*x+p)
    return f
def g(x):
    g = cos(pi*x)
    return g

graph1 = gdisplay(x=0, y=0, width=600, height=400, 
          title='A vs. t', xtitle='t', ytitle='A', 
          foreground=color.black, background=color.white)
p = 0.
f1 = gcurve(color=color.blue)
f2 = gcurve(color=color.red)

t = arange(-2.,2.,0.01)
s = g(t)
while True:
    rate(100)
    f1.gcurve.pos=[]  #delete this and look at the effect :)
    f2.gcurve.pos=[]
    u = f(t)
    for i in arange(len(s)):
        f2.plot(pos=((i-len(s)/2.)*.01,s[i]))
        f1.plot(pos=((i-len(s)/2.)*.01,u[i]))
    p = p + 0.01
    if p >100:
        p = 0